可能重复:
带前导零的整数
我正在编写的程序要求我标记一个库存编号为 012345 的项目并将其存储在一个 int 变量中。
这是我正在做的一个精简示例:
int test = 012345;
System.out.println(test);
这打印为:
5349
如何让它打印为 012345 而不是 5349?
编辑:我将这个输入到我正在初始化的自定义类的构造函数的参数中。然后我使用一种方法返回当前数字是多少,然后将其打印到终端窗口。
可能重复:
带前导零的整数
我正在编写的程序要求我标记一个库存编号为 012345 的项目并将其存储在一个 int 变量中。
这是我正在做的一个精简示例:
int test = 012345;
System.out.println(test);
这打印为:
5349
如何让它打印为 012345 而不是 5349?
编辑:我将这个输入到我正在初始化的自定义类的构造函数的参数中。然后我使用一种方法返回当前数字是多少,然后将其打印到终端窗口。
你得到了一个错误的数字,因为当你在一个整数文字前面加上零时,Java 将这个数字解释为一个八进制 (即 base-8)常量。如果要添加前导零,请使用
int test = 12345;
System.out.println("0"+test);
您还可以将格式化输出功能与说明符一起%06d
使用,如下所示:
System.out.format("%06d", num);
6
表示“使用六位数字”;'0' 表示“必要时用零填充”。
如前所述,带前导零的 int 值被视为八进制值。如果您不需要将 test 作为 int,为什么不将其设为字符串?像
String test= new String("012345");
如果你想使用int进行测试,你可以不加0,而只是使用数字并在打印时加0。
如果您想知道如何找到要添加多少前导零,您可以这样做
int lengthOfItemID=6;
int test=12345;
String test1=new String("000000"+test);
System.out.println(test1.substring(test1.length()-lengthOfItemID));
请原谅语法错误,我上次使用 java 已经有好几年了。