我正在尝试将String
解析为Long
,有时以0
开头。我希望结果在{的长度开头保持"0"
(例如0247484
而不是247484
)。
我已尝试过此Long.parseLong(city.getId())
,但会删除第一个"0"
。
谢谢
答案 0 :(得分:5)
你要求的是不可能的。在数学术语中,前导0绝对没有意义,因此无法长时间表示它。
您可能想要做的是在以后将其打印出来时控制Long的渲染。有多种方法可以控制数字的格式,这可能会有所帮助:http://docs.oracle.com/javase/7/docs/api/java/text/NumberFormat.html
答案 1 :(得分:3)
您应该使用DecimalFormat类:http://docs.oracle.com/javase/7/docs/api/java/text/DecimalFormat.html
String number = "0247484";
long parsed = Long.parseLong(number);
System.out.println("Unformatted: " + parsed);
DecimalFormat df = new DecimalFormat("0000000");
String formatted = df.format(parsed);
System.out.println("Formatted: " + formatted);
答案 2 :(得分:1)
好吧,如果你真的需要,你可以这样做:
例如:08530(字符串)到long ==> 8530当你需要转换另一个时间字符串时, 你可以这样做:
String.format("%05d", number);
但您需要定义一个模式。我希望它有所帮助。