[英]Parse String to long with leading zero
长话短说(Java):
String input= "0888880747;
long convert = Long.parseLong(input);
convert 的值现在是:888880747
如何将String
解析为long
但保留前导零?
你不能,因为 long 没有前导零。 long 应该存储整数(数学概念,而不是int
) ,即
像05
这样的字符串不是整数, 5
是。 长期保存你可以做的是格式5
具有前导零,当你打印出来,例如参见java.util.Formatter中。
你确定你甚至想要一个长/整数吗? 你想用它做什么?
完成转换计算后,您必须将其改回String
,然后:
output = String.format("%06d", convert);
long
是一个数值。 000001 的数值与 1 没有区别:它是完全相同的数字。
所以一旦你有一个long
,你就无法找出初始表示有多少个前导零。
如果您真的关心这一点,那么无论如何您都不应该将输入作为数字类型处理,而是存储String
本身。
您可以调整代码。 首先获取字符串的长度。
String input = "0888880747";
System.out.println(String.format("%0"+input.length()+"d", Long.valueOf(input)))):
上面的 tweek 有效,但看起来不太好。 如果前导零很重要,最好将值读取为 String 并作为 varchar 而不是 Number 存储在 DB 中。
如果您的值是 long,则左侧(前导)的任何零都没有数学价值,因此,在您进行解析时,它们会被剥离。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.