我有一个包含数字的字符串。但
String s = "01234";
Long val = Long.parseLong (s);
这会给我结果 1234 而不是 01234 如何保留初始零? 有什么方法吗?
由于
答案 0 :(得分:1)
你不能保留零,因为Long不能有前导零。
对于电脑:
当您分配0001时,实际上不是" 0001",而是八进制1(在这种情况下,与十进制中的1相同)。
龙是龙; "领先的零不会使数字特殊"。
重要要点:领先" 0"是一个"字面八进制"。文字" 07" 是" 7"。文字" 010"是" 8"。文字" 08"是非法的。
但是,您可以使用java格式化程序功能(java.util.Formatter)打印带有前导零的数字。
int arjun = 1234;
System.out.printf("%05d", arjun);
%03d =>在开始时添加零+结果5个字符长+输入将是一个长
答案 1 :(得分:0)
它不会给你1234
。它为您提供了一个64位二进制值,可以表示为0b0000000000000000000000000000000000000000000000000000010011010010
,包括所有前导零位,以及代码中的 else ,随后打印为1234
。
要解决此问题的地方不在您发布的代码中,而是在打印代码中,使用DecimalFormat
。