使用java中字符串的正/负前缀解析数字

时间:2010-01-18 22:44:50

标签: java formatting

在java中解析数字是非常直接的,即使用Integer.parseInt(s),如果字符串格式为'n'' - n' ,但不幸的是它无法以'+ n'的格式解析字符串。

如果它包含正面或负面前缀,那么从java中解析数字的最有效/优雅的方法是什么:'+ n'' - n'

2 个答案:

答案 0 :(得分:10)

Integer.parseInt(s.replace("+", ""));

事实上有许多陷阱使用Integer来解析这样的数字,因为Integer有非常特定的大小和格式(“1,000,000.00”)的边界不解析那样,但我把你的问题作为整数。 parseInt很好地满足了您的需求,您只需处理数据中的+。

答案 1 :(得分:0)

仅供参考,这已在Java 7中修复。

来自,Java SE8 for the Really Impatient

  

JDK 1.7之前,以下代码段的结果是什么?

     

double x = Double.parseDouble("+1.0");

     

int n = Integer.parseInt("+1");

     如果你知道的话,请拍拍自己   回答:+1.0一直是一个有效的浮点数,但是   直到Java 7,+1不是有效整数。这已经修复了   对于构建intlongshortbyte的所有各种方法,   和字符串中的BigInteger值。他们中的人比你多   可能会想。除了解析(Int | Long | Short | Byte)之外,还有   解码使用十六进制和八进制输入的方法,以及   生成包装器对象的valueOf方法。 BigInteger(String)   构造函数也已更新。