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
是单位常规;-)除此之外,模当然也会起作用。我只是不是它的朋友。