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

Java 如何在将字符串转换为数字时保留前导零?,java,android,Java,Android,我有一个包含数字的字符串。但是 String s = "01234"; Long val = Long.parseLong (s); 这将给我结果1234,而不是01234 如何保持初始零? 有什么办法吗 谢谢,您不能保留零,因为Long不能有前导零 对于计算机: 当您指定0001时,它实际上不是“0001”,而是八进制中的1(在本例中,与十进制中的1相同) 长就是长;“前导零不会使数字变得特别” 要点:前导“0”是“文字八进制”。字面上的“07” 是“7”。文字“010”是“8”。字面上的“

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

String s = "01234";
Long val = Long.parseLong (s);
这将给我结果1234,而不是01234 如何保持初始零? 有什么办法吗


谢谢,您不能保留零,因为Long不能有前导零

对于计算机:

当您指定0001时,它实际上不是“0001”,而是八进制中的1(在本例中,与十进制中的1相同)

长就是长;“前导零不会使数字变得特别”

要点:前导“0”是“文字八进制”。字面上的“07” 是“7”。文字“010”是“8”。字面上的“08”是非法的

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

工作代码:


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

它不会给您提供
1234
。它为您提供一个64位二进制值,可以表示为
0b000000000000000000000000000000000000000000000000000000000010101010010
,包括所有前导零位,代码中的其他内容随后将其打印为
1234


解决这个问题的地方不是你发布的代码,而是打印代码,使用
DecimalFormat

我认为这是不可能的。你为什么会在意?从数学上讲,1234定义为包含0到1233的集合中的元素数。它只在您想要显示数字时才起作用,为此,您可以使用Java中可用的格式化程序。您不能,因为long没有前导零。我认为您不能这样做。但是你可以这样做,就像在需要前导零的值时保持字符串,在需要进行数学运算时保持长字符串一样。@ShaileshYadav这个特殊的长字符串有53个前导二进制零。嘿,我没有将它转换回字符串,我只需要将它保留为长格式为什么你需要它,兄弟!!好吧,我只是决定采用长度,但这不是正确的方法。你想达到什么目的?我仍然感到困惑。但是,你的问题确实一针见血。一个验证步骤,好的先生
int arjun = 1234;
System.out.printf("%05d", arjun);