2015-02-11 204 views
4

我試圖解析+1值爲int值。在我的代碼+1String,我試圖將其轉換爲使用Integer.parseIntInteger爲什麼我不能解析「+1」int?

String num = "+1"; 
int convertedNum = Integer.parseInt(num); 

,但我得到的錯誤,爲什麼Java未能處理+1爲整數值?

+0

這不是重複的,所提問題的答案是舊的(2010),並沒有說這個問題在JDK1.7中得到解決,所以這些問題似乎沒有任何關係。 – bhuvesh 2015-02-11 16:21:05

+0

@bhuvesh可以很好地爲其他問題添加一個答案,並注意到java的行爲已經改變。 – Kenster 2015-02-11 16:26:26

回答

12

因爲您必須使用較早版本的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,longshort,byte, 和BigInteger值的所有各種方法,現在已經修復了 。它們中有更多的可能會比你想象的要多。除了解析(Int | Long | Short | Byte)之外,還有 解碼方法可以處理十六進制和八進制輸入,以及 valueOf產生包裝對象的方法。構造函數的BigInteger(String) 也被更新。

+1

因此-1有效,+1不是? – 2015-02-11 16:13:37

+1

這是Java,他們仍然不相信無符號數字。可能爲什麼它不能正確處理標誌。 – Blindy 2015-02-11 16:14:26

+0

謝謝,我很愚蠢,沒有意識到這一點。 – bhuvesh 2015-02-11 16:20:23

相關問題