Java:Parse String,有时以0开头

时间:2014-03-18 15:04:34

标签: java string parsing

我正在尝试将String解析为Long,有时以0开头。我希望结果在{的长度开头保持"0"(例如0247484而不是247484)。

我已尝试过此Long.parseLong(city.getId()),但会删除第一个"0"

谢谢

3 个答案:

答案 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);

但您需要定义一个模式。我希望它有所帮助。