在java中解析数字是非常直接的,即使用Integer.parseInt(s),如果字符串格式为'n'或' - n' ,但不幸的是它无法以'+ n'的格式解析字符串。
如果它包含正面或负面前缀,那么从java中解析数字的最有效/优雅的方法是什么:'+ n'或' - n' ?
答案 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
不是有效整数。这已经修复了 对于构建int
,long
,short
,byte
的所有各种方法, 和字符串中的BigInteger
值。他们中的人比你多 可能会想。除了解析(Int | Long | Short | Byte)之外,还有 解码使用十六进制和八进制输入的方法,以及 生成包装器对象的valueOf
方法。BigInteger(String)
构造函数也已更新。