我正在研究一个java程序,我需要存储一些从0到16的整数 00,01等......
现在当我将'09'存储为9或'08'为8时,它开始给我错误。
我的问题是:
有没有办法在JAVA中以整数形式存储08或09?
我必须将数字存储为00,01. ..只有替代方案?
非常感谢!
答案 0 :(得分:6)
使用整数存储您的数字,如果需要显示这些值,请将它们转换为字符串。字符串可以很容易地格式化以显示前导零。
int num = 5;
System.out.println(String.format("%02d", num));
答案 1 :(得分:2)
不,除非将它们存储为字符串,否则无法执行此操作。 或者将它们存储为常规int并使用字符串格式输出。
答案 2 :(得分:2)
尝试将09
存储为数值是没有意义的(除非你的意思是在八进制中真正意味着9
,这会更不合理)。您引用的09
值是值9
的表示。数字值与它们的表示方式无关。您可以将十进制基数中的值九表示为9
或09
或9.0
,或将八进制数表示为011
,但值仍为同样, 9 ,它应该存储在Integer
变量(或int
)中。
将Integer
个变量中的数字存储为它们的数值,并以String.format()
所希望的格式输出它们,例如:
Integer i = 9; // or Integer i = 011; whatever
System.out.println(String.format("%02d", i));
答案 3 :(得分:2)
尝试使用String.format()
int num = 9;
System.out.println(String.format("%02d", num));
在%02d
0
- 用零填充2
- 将宽度设置为2 输出
09
答案 4 :(得分:0)
听起来你正试图做错事;然而,有许多可能的方法。
案例1:您正在尝试存储日期组件并将其显示为两位数。在这种情况下,请改用java.util.Calendar
。
案例2:您正试图存储部分版本号。在这种情况下,您应该将其存储为String
,而不是int
。
案例3:您正在尝试存储其他类型的数据,并且需要使用前导零显示它。为此,您应该使用PrintStream.printf
或String.format
来执行此操作。 System.out.printf("%1$2d", myInteger)
会将数字输出为两位数,如果需要,可以添加前导零。