如何将int转换为char []以显示时间?

时间:2014-01-09 13:31:51

标签: java swing converter

我写了一个模拟,想在JFrame和动画中显示时间。
我通过覆盖paintComponent方法并重新绘制每个时间步来调用我的动画。
但是,我的时间计数器在(int)seconds,我知道写文本的唯一方法是g.drawChars,需要一组字符。

关于如何将我的时间在几秒钟内转换为char数组的任何想法,以便我能以人类可读的方式显示时间?

6 个答案:

答案 0 :(得分:3)

假设yourIntValue表示您的秒数。

new Integer(yourIntValue).toString().toCharArray()应该可以解决问题。

更简单的方法是使用String.valueOf(yourIntValue).toCharArray()

答案 1 :(得分:1)

Stringchar[] 1

因此,您只需将int转换为String,然后返回char[]

String.valueOf(i).toCharArray();

1 在该陈述中详细说明。 如果您查看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

<小时/> 的 编辑: 我想评论其他一个答案,但我没有足够的代表,所以我会将其作为答案的一部分发布。

String.valueOf(i).toCharArray();

Integer.toString(i).toCharArray();

是(几乎)同一个电话。这是因为valueOf(int i)的{​​{1}}方法是:

String

答案 2 :(得分:1)

您可以先转换为String,然后转换为char数组。

     int time = 10;
     char[] chars = Integer.toString(time).toCharArray();

答案 3 :(得分:0)

我会这样做:

int minutes = seconds / 60;
int remainingSeconds = seconds - (minutes * 60); // or int remainingSeconds = seconds % 60
String time = minutes + ":" + remainingSeconds;
char[] timeCharArray = time.toCharArray();

另见documentation of toCharArray()

答案 4 :(得分:0)

您希望将时间格式化还是仅显示为第二次计数?

作为第二个计数:

String.valueOf(yourInt).toCharArray();

要格式化它:

String time = (yourInt/(60*60))+":"+((yourInt/60)%60)+":"+(yourInt%60);
time.toCharArray();

但是图形对象有一个drawString()选项,无论如何都可以跳过toCharArray()步骤。

答案 5 :(得分:0)

将时间从int转换为Date(mmiseconds是你拥有的int,只需将它从几秒转换为毫秒):

Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(milliSeconds);
Date date = calendar.getTime();

将日期解析为本地格式并获得一个字符串(格式示例为“dd.MM.yyyy”):

SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
String humanReadableDate = sdf.format(date);