我試圖解析+1
值爲int
值。在我的代碼+1
是String
,我試圖將其轉換爲使用Integer.parseInt
Integer
,爲什麼我不能解析「+1」int?
String num = "+1";
int convertedNum = Integer.parseInt(num);
,但我得到的錯誤,爲什麼Java未能處理+1
爲整數值?
我試圖解析+1
值爲int
值。在我的代碼+1
是String
,我試圖將其轉換爲使用Integer.parseInt
Integer
,爲什麼我不能解析「+1」int?
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
一直是一個有效的浮點數,但 直到Java 7中,+1
不是一個有效的整數。對於從字符串構造int
,long
,short
,byte
, 和BigInteger
值的所有各種方法,現在已經修復了 。它們中有更多的可能會比你想象的要多。除了解析(Int | Long | Short | Byte)之外,還有 解碼方法可以處理十六進制和八進制輸入,以及valueOf
產生包裝對象的方法。構造函數的BigInteger(String)
也被更新。
這不是重複的,所提問題的答案是舊的(2010),並沒有說這個問題在JDK1.7中得到解決,所以這些問題似乎沒有任何關係。 – bhuvesh 2015-02-11 16:21:05
@bhuvesh可以很好地爲其他問題添加一個答案,並注意到java的行爲已經改變。 – Kenster 2015-02-11 16:26:26