Java 为什么我不能解析+;1“;到int?
我试图将Java 为什么我不能解析+;1“;到int?,java,Java,我试图将+1值解析为int值。在我的代码中,+1是一个字符串,我正在尝试使用Integer.parseInt将其转换为Integer String num = "+1"; int convertedNum = Integer.parseInt(num); 但我有一个错误,为什么Java不把+1当作一个整数值?因为您必须使用较旧版本的JDK(JDK
+1
值解析为int
值。在我的代码中,+1
是一个字符串
,我正在尝试使用Integer.parseInt将其转换为Integer
String num = "+1";
int convertedNum = Integer.parseInt(num);
但我有一个错误,为什么Java不把+1
当作一个整数值?因为您必须使用较旧版本的JDK(JDK<7)。在Java 7之前,
+1
未被视为有效整数
在JDK 1.7之前,以下代码段的结果是什么
double x=double.parseDouble(“+1.0”)代码>
int n=Integer.parseInt(“+1”)代码>
如果你知道真相,就拍拍自己的背
回答:+1.0
始终是一个有效的浮点数,但是
在Java7之前,+1
不是有效的整数。这个问题现在已经解决了
对于所有构造int
,long
,short
,byte
的各种方法,
和字符串中的biginger
值。他们比你多
我可能会想。除了解析(Int | Long | Short | Byte),还有
解码使用十六进制和八进制输入的方法,以及
产生包装器对象的方法的值。biginger(字符串)
构造函数也会更新
那么-1是有效的,+1不是吗?这是Java,他们仍然不相信无符号数字。可能是它无法正确处理标志的原因。谢谢你,我很傻没有意识到这一点。这不是重复,建议问题中的答案是old(2010),并且它没有说明JDK1.7中对此进行了修复,因此这些问题似乎根本没有关系。@bhuvesh可以为其他问题添加一个答案,注意java的行为已经改变。