Java 如何将int转换为char[]以显示时间?
我已经编写了一个模拟,并希望在Java 如何将int转换为char[]以显示时间?,java,swing,converter,Java,Swing,Converter,我已经编写了一个模拟,并希望在JFrame中与动画一起显示时间我通过覆盖paintComponent方法调用动画,并在每个时间步重新绘制。但是,我的时间计数器是(int)秒,我知道的唯一写入文本的方法是g.drawChars,它需要一个字符数组 您知道如何将秒数的时间转换为字符数组,以便以人类可读的方式显示时间吗?假设yourIntValue表示秒数 新整数(yourIntValue).toString().toCharray()应该可以做到这一点 更简单的方法是使用String.valueOf
JFrame
中与动画一起显示时间我通过覆盖
paintComponent
方法调用动画,并在每个时间步重新绘制。但是,我的时间计数器是
(int)秒
,我知道的唯一写入文本的方法是g.drawChars
,它需要一个字符数组
您知道如何将秒数的时间转换为字符数组,以便以人类可读的方式显示时间吗?假设
yourIntValue
表示秒数
新整数(yourIntValue).toString().toCharray()
应该可以做到这一点
更简单的方法是使用
String.valueOf(yourIntValue).toCharray()
假设yourIntValue
表示秒数
新整数(yourIntValue).toString().toCharray()
应该可以做到这一点
更简单的方法是使用String.valueOf(yourIntValue).toCharray()
我会这样做:
int minutes = seconds / 60;
int remainingSeconds = seconds - (minutes * 60); // or int remainingSeconds = seconds % 60
String time = minutes + ":" + remainingSeconds;
char[] timeCharArray = time.toCharArray();
另请参见。我会这样做:
int minutes = seconds / 60;
int remainingSeconds = seconds - (minutes * 60); // or int remainingSeconds = seconds % 60
String time = minutes + ":" + remainingSeconds;
char[] timeCharArray = time.toCharArray();
另请参见。
String
是一个char[]
1
因此,您可以将int
转换为String
,然后返回char[]
String.valueOf(i).toCharArray();
我要详细阐述一下这句话。 如果查看
String
类,您将看到它实现了CharSequence
它还声明并添加javadoc注释
/** The value is used for character storage. */
private final char value[];
为简洁起见,我还将发布String
public String() {
this.offset = 0;
this.count = 0;
this.value = new char[0];
}
您可以查看其他构造函数,了解它如何为每个字符串构建char[]
编辑:
我想对其他答案中的一个发表评论,但我没有足够的代表性,所以我将把它作为我答案的一部分发布
String.valueOf(i).toCharArray();
及
这(几乎)是同一个电话。这是因为value of(int i)
方法的String
是:
public static String valueOf(int i) {
return Integer.toString(i, 10);
}
String
是一个char[]
1
因此,您可以将int
转换为String
,然后返回char[]
String.valueOf(i).toCharArray();
我要详细阐述一下这句话。
如果查看String
类,您将看到它实现了CharSequence
它还声明并添加javadoc注释
/** The value is used for character storage. */
private final char value[];
为简洁起见,我还将发布String
public String() {
this.offset = 0;
this.count = 0;
this.value = new char[0];
}
您可以查看其他构造函数,了解它如何为每个字符串构建char[]
编辑:
我想对其他答案中的一个发表评论,但我没有足够的代表性,所以我将把它作为我答案的一部分发布
String.valueOf(i).toCharArray();
及
这(几乎)是同一个电话。这是因为value of(int i)
方法的String
是:
public static String valueOf(int i) {
return Integer.toString(i, 10);
}
您想要格式化时间还是只显示为第二次计数
作为第二个计数,请执行以下操作:
String.valueOf(yourInt).toCharArray();
要设置格式,请执行以下操作:
String time = (yourInt/(60*60))+":"+((yourInt/60)%60)+":"+(yourInt%60);
time.toCharArray();
但是图形对象有一个drawString()选项,允许您跳过tocharray()步骤。您希望时间格式化还是只显示为秒计数
作为第二个计数,请执行以下操作:
String.valueOf(yourInt).toCharArray();
要设置格式,请执行以下操作:
String time = (yourInt/(60*60))+":"+((yourInt/60)%60)+":"+(yourInt%60);
time.toCharArray();
但是图形对象有一个drawString()选项,允许您跳过toCharArray()步骤。您可以先转换为String,然后再转换为char数组
int time = 10;
char[] chars = Integer.toString(time).toCharArray();
您可以先将其转换为字符串,然后再转换为字符数组
int time = 10;
char[] chars = Integer.toString(time).toCharArray();
将时间从整数转换为日期(毫秒是您拥有的整数,只需将其从秒转换为毫秒):
将日期解析为本地格式,得到一个字符串(格式示例为“dd.MM.yyyy”):
将时间从整数转换为日期(毫秒是您拥有的整数,只需将其从秒转换为毫秒):
将日期解析为本地格式,得到一个字符串(格式示例为“dd.MM.yyyy”):
您可以将其转换为string并使用drawString方法。那么g.drawString
呢?将其与String.valueOf(yourInteger)
一起使用。您可以将其强制转换为String并使用drawString方法。那么g.drawString
呢?与String.valueOf(yourInteger)
一起使用。您只需执行seconds%=60
@TimB双重命名变量seconds
是单位常规;-)除此之外,模当然也会起作用。我不是它的朋友。你可以做seconds%=60
@TimB双重命名变量seconds
是单位常规;-)除此之外,模当然也会起作用。我只是不是它的朋友。