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的行为已经改变。