如何在将String转换为数字时保留前导零?

时间:2017-04-12 05:21:52

标签: java android

我有一个包含数字的字符串。但

String s = "01234";
Long val = Long.parseLong (s);

这会给我结果 1234 而不是 01234 如何保留初始零? 有什么方法吗?

由于

2 个答案:

答案 0 :(得分:1)

你不能保留零,因为Long不能有前导零。

对于电脑:

当您分配0001时,实际上不是" 0001",而是八进制1(在这种情况下,与十进制中的1相同)。

龙是龙; "领先的零不会使数字特殊"。

  

重要要点:领先" 0"是一个"字面八进制"。文字" 07"   是" 7"。文字" 010"是" 8"。文字" 08"是非法的。

但是,您可以使用java格式化程序功能(java.util.Formatter)打印带有前导零的数字。

工作代码:http://ideone.com/4MGZyi

int arjun = 1234;
System.out.printf("%05d", arjun);

%03d =>在开始时添加零+结果5个字符长+输入将是一个长

答案 1 :(得分:0)

它不会给你1234。它为您提供了一个64位二进制值,可以表示为0b0000000000000000000000000000000000000000000000000000010011010010,包括所有前导零位,以及代码中的 else ,随后打印1234

要解决此问题的地方不在您发布的代码中,而是在打印代码中,使用DecimalFormat