2013-05-16 67 views
0
String str; 
    str = request.getParameter("quantity"); 


try{ 
    int i = Integer.parseInt(str); 
    out.println(i); 
} 
catch(Exception ee){ 
     out.println(ee); 
} 

每次輸出拋出NumberFormatException的......我無法解析字符串爲整數無法解析字符串爲int .....異常每次

+1

檢查字符串的內容是否可以轉換爲int!如果字符串是數字像「90」或字母數字像「90A」等... – NINCOMPOOP

+0

什麼是str的價值? – Sudz

+0

str的值是2 ..........但是當它在html文本框中顯示時,其值是2 / –

回答

0

我有一個類似的問題。嘗試這個。即時通訊假設這是C#。 哦,對不起,我只是注意到它說的jsp。我相信這個概念是一樣的,但我沒有嘗試過jsp。

String str; 
str = request.getParameter("quantity"); 
int newValue; 


try{ 
    int.TryParse(str , out newValue); 
    out.println(newValue); 
} 
catch(Exception ee){ 
    out.println(ee); 
} 
1

您應該檢查如果您的號碼是太大,無法在int或@Noob奔放的建議,檢查內容。

您可以使用此方法來嘗試的情況下,解析你總是不知道該值:

public static int parseWithDefault(String number, int defaultVal) { 
     try { 
       return Integer.parseInt(number); 
     } catch (NumberFormatException e) { 
       return defaultVal; 
     } 
    } 
0

檢查str.It的值可以是一些不能被轉換成int,如「ST」

0

爲什麼不調試你的代碼,看看str的值是什麼,還要檢查NumberFormatException堆棧跟蹤,因爲它會告訴它試圖解析什麼值。

0

首先要做的事情應該是確保字符串可以完全轉換爲數字。

"48" --> a number 
"--48" --> not a number 

如果需要,您應該解析字符串或使用正則表達式來刪除非數字字符。爲了增加安全性,您可以在默認使用情況下輸入一個默認數字,然後調用TryParse。這樣,無論發生什麼,它都不會使您的應用程序崩潰,但您仍然可以記錄錯誤。