也许这是一个愚蠢的问题,但我无法弄清楚如何在a:之后显示两个00:这就是我的意思:
我有两个数组:
int[] HoraCole = { 00, 1, 4, 5, 5, 6, 6, 6, 7, 7, 8, 8, 9, 9, 9,10,10,10,11,11,12,12,12,13,13,13,14,14,15,15,16,16,16,17,17,17,18,18,19,19,19,20,20,20,21,22,22,23};
int[] MinutosCole ={ 20,30,30,25,40,00,40,50,20,50,00,30,00,10,40,10,20,50,20,30,00,30,40,00,40,50,20,50,00,30,00,10,40,10,20,50,20,30,00,30,40,10,40,50,20,00,30,10};
然后我有一个arrayadapter接受这个数组,并使用这种格式00:00
创建一个字符串 if (MinutosCole.length == HoraCole.length){
for (int i = 0; i < HoraCole.length; i++){
lista.add(HoraCole[i] + ":" + MinutosCole[i]);
}
}
但是当显示那些在MinutosCole
中有两个00的人时,它只显示一个0
你们知道为什么会这样吗? 提前致谢
答案 0 :(得分:1)
你可以用这个
System.out.printf("%02d%n", n);
和
String.format("%02d", minutes);
答案 1 :(得分:1)
请注意,00被解释为八进制表示法。所以该值为0 * 8 ^ 0 = 0.(如果您在每个示例中尝试了08,则会出现编译错误。)
我警告过你,因为如果你正在做int a = 077;
并期望它的值为77(基数为10),情况并非如此,a
的值实际为7 * 8 + 7 = 63。
如果你想在一位数的数字之前填充一些零,请使用格式化程序。
答案 2 :(得分:0)
如果您的值是整数,则0000000始终存储为0.如果要将其打印为00,我建议使用String
答案 3 :(得分:0)
您的数组类型为int[]
。显示int
时,它始终显示为实际数值,即。 “0”而不是“00”。解决这个问题的方法是在打印整数时使用String.format
填充额外的零。
答案 4 :(得分:0)
如果您将阵列定义如下,它将为您的目的服务。
String[] HoraCole = { "00", "1", ...} String[] MinutosCole ={ "20","00","00", .. }
另外,您可以使用字符串格式化程序显示2位数的整数。 例如
System.out.printf(“i is%02d%n”,i);
有关详细信息,请查看Formatter的文档。