java阻止Int将012345更改为5349
Possible Duplicate:
Integer with leading zeroes
我正在编写的程序要求我标记一个库存编号为012345的项目,并将其存储在一个int变量中
这是我正在做的一个简单的例子:
int test = 012345;
System.out.println(test);
该文件打印为:
5349
如何将其打印为012345而不是5349
编辑:我正在为我正在初始化的自定义类的构造函数的参数中输入它。然后我使用一种方法返回当前的数字,然后将其打印到终端窗口
# 1 楼答案
使用
Integer.parseInt
可以得到正确的结果。这将使您的字符串变成十进制字符串。(发现here)。JAVA API here声明它接受一个字符串并返回一个带符号的十进制数# 2 楼答案
你得到了一个错误的数字,因为当你把零前置到一个整数文本时,Java会把这个数字解释为一个八进制(即base-8)常量。如果要添加前导零,请使用
还可以将formated output functionality与
%06d
说明符一起使用,如下所示:6
表示“使用六位数”“0”表示“必要时用零填充”# 3 楼答案
如前所述,前导为零的int值被认为是八进制值。如果不需要将test设置为int,为什么不将其设置为string呢?就像
如果你想在测试中使用int,你不需要在0前加前缀,只需要在打印时使用数字和0
如果您想知道如何找到要预先设置的前导零的数量,您可以这样做
请原谅语法错误,我上一次使用java已经很多年了