0

下面的代碼不會運行,並且在錯誤是「線程中的異常」main「java.lang.NumberFormatException:對於輸入字符串:」SAN 1905 1808 + 24 + 1512 1209 17 + 10一七零八年至1706年2016-16 211831 211941 192652" 「」轉換字符串時的數字格式異常

intAlt = Integer.parseInt(strAlt); 

我不知道爲什麼發生這種情況,並會就此事感激任何意見

private int getPos(String strAlt) 
{ 
int intAlt; 
int intPos =0; 
intAlt = Integer.parseInt(strAlt); 
switch (intAlt) 
{ 
    case 3: 
    intPos = 4; 
    break; 
    case 6: 
    intPos = 9; 
    break; 
    case 9: 
    intPos = 17; 
    break; 
    case 12: 
    intPos = 25; 
    break; 
    case 18: 
    intPos = 33; 
    break; 
    case 24: 
    intPos = 41; 
    break; 
    case 30: 
    intPos = 49; 
    break; 
    case 34: 
    intPos = 56; 
    break; 
    case 39: 
    intPos = 63; 
    break; 
} 
return intPos; 
} 
+2

使用調試器或SOP語句來查看'strAlt'的值是什麼。 – 2013-03-10 01:13:20

+0

我同意@ Code-Guru,但我只注意到OP聲明它不會編譯。 OP,你需要澄清 - 拋出一個異常只發生在運行時。它不會編譯,還是在運行時會拋出異常? – jazzbassrob 2013-03-10 01:15:44

+0

好的,澄清一下,你的代碼無法編譯?或者它拋出一個NumberFormatExceptions?它不能兼得!無論哪種方式,請發佈*確切*錯誤消息,以便我們可以提供幫助。 – 2013-03-10 01:16:38

回答

0

如果您將「SAN 1905 1808 + 24 1512 + 17 1209 + 10 1708-06 2016-16 211831 211941 192652」轉換爲getPos(String strA它會執行:

intAlt = Integer.parseInt(strAlt); 

當然它會拋出異常。 See this doc

相關問題