如何以整数存储'09'

时间:2014-01-28 16:06:53

标签: java

我正在研究一个java程序,我需要存储一些从0到16的整数 00,01等......

现在当我将'09'存储为9或'08'为8时,它开始给我错误。

thisthis问题我知道它是八进制表示法。

我的问题是:

有没有办法在JAVA中以整数形式存储08或09?

我必须将数字存储为00,01. ..只有替代方案?

非常感谢!

5 个答案:

答案 0 :(得分:6)

使用整数存储您的数字,如果需要显示这些值,请将它们转换为字符串。字符串可以很容易地格式化以显示前导零。

    int num = 5;
    System.out.println(String.format("%02d", num));

答案 1 :(得分:2)

不,除非将它们存储为字符串,否则无法执行此操作。 或者将它们存储为常规int并使用字符串格式输出。

答案 2 :(得分:2)

尝试将09存储为数值是没有意义的(除非你的意思是在八进制中真正意味着9,这会更不合理)。您引用的09值是9的表示。数字值与它们的表示方式无关。您可以将十进制基数中的值表示为9099.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.printfString.format来执行此操作。 System.out.printf("%1$2d", myInteger)会将数字输出为两位数,如果需要,可以添加前导零。