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


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

출력이 NumberFormatException이 때마다 발생합니다 ........... 예외가 때마다

+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 연쇄 (unchained)이 내용을 확인 제안에 맞게 너무 큰 경우 당신은 확인해야합니다.

당신이 항상 값을 모르는 경우 구문 분석을 시도하기 위해이 방법을 사용할 수 있습니다

: str.It의 값이 뭔가 할 수 있습니다

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

검사는 "성"처럼 int로 변환 할 수 없습니다

0

코드를 디버그하고 str의 값을 확인하고 구문 분석하려고 시도한 값을 알려주는 NumberFormatException 스택 추적을 확인하십시오.

0

먼저해야 할 일은 문자열을 숫자로 완전히 변환 할 수 있도록하는 것입니다.

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

필요한 경우 문자열을 구문 분석하거나 정규식을 사용하여 숫자가 아닌 문자를 제거해야합니다. 추가 안전을 위해 기본 유스 케이스에 맞는 기본 숫자를 정수에 넣은 다음 TryParse을 호출 할 수 있습니다. 이렇게하면 어떤 일이 일어나더라도 응용 프로그램이 손상되지는 않지만 오류를 기록 할 수 있습니다.

관련 문제