java.lang을 방지하려면 어떻게 해야 하나요?NumberFormatException:입력 문자열의 경우: "N/A"?
코드를 실행하는 동안,NumberFormatException
:
java.lang.NumberFormatException: For input string: "N/A"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.valueOf(Unknown Source)
at java.util.TreeMap.compare(Unknown Source)
at java.util.TreeMap.put(Unknown Source)
at java.util.TreeSet.add(Unknown Source)`
이 예외가 발생하지 않도록 하려면 어떻게 해야 합니까?
"N/A"
는 정수가 아닙니다.던져야 한다NumberFormatException
정수로 해석하려고 할 경우.
구문 분석 또는 처리 전 확인Exception
적절히.
예외 처리
try{ int i = Integer.parseInt(input); } catch(NumberFormatException ex){ // handle your exception ... }
또는 - 정수 패턴 일치 -
String input=...;
String pattern ="-?\\d+";
if(input.matches("-?\\d+")){ // any positive or negetive integer or not!
...
}
Integer.parseInt(str)가 느려진다.NumberFormatException
문자열에 파싱 가능한 정수가 포함되어 있지 않은 경우.당신은 아래와 같이 할 수 있습니다.
int a;
String str = "N/A";
try {
a = Integer.parseInt(str);
} catch (NumberFormatException nfe) {
// Handle the condition when str is not a number.
}
예외 핸들러를 이렇게 만듭니다.
private int ConvertIntoNumeric(String xVal)
{
try
{
return Integer.parseInt(xVal);
}
catch(Exception ex)
{
return 0;
}
}
.
.
.
.
int xTest = ConvertIntoNumeric("N/A"); //Will return 0
분명히 해석은 할 수 없다.N/A
로.int
가치. 당신은 그것을 처리하기 위해 다음과 같은 것을 할 수 있습니다.NumberFormatException
.
String str="N/A";
try {
int val=Integer.parseInt(str);
}catch (NumberFormatException e){
System.out.println("not a number");
}
"N/A"는 문자열이므로 숫자로 변환할 수 없습니다.예외를 잡아서 처리하세요.예를 들어 다음과 같습니다.
String text = "N/A";
int intVal = 0;
try {
intVal = Integer.parseInt(text);
} catch (NumberFormatException e) {
//Log it if needed
intVal = //default fallback value;
}
'N/A'는 int로 해석할 수 없으며 예외가 발생합니다.또한 제공된 문자열이 <-2147483648(int max 및 min)이 될 수 있습니다.이 경우에도 숫자 형식의 예외가 발생하며, 이 경우 다음과 같이 시도할 수 있습니다.
String str= "8765432198";
Long num= Long.valueOf(str);
int min = Integer.MIN_VALUE;
int max = Integer.MAX_VALUE;
Integer n=0;
if (num > max) {
n = max;
}
if (num < min) {
n = min;
}
if (num <= max && num >= min)
n = Integer.valueOf(str);
언급URL : https://stackoverflow.com/questions/18711896/how-can-i-prevent-java-lang-numberformatexception-for-input-string-n-a
'programing' 카테고리의 다른 글
MySQL 날짜 문자열을 Unix 타임스탬프로 변환 (0) | 2023.01.20 |
---|---|
통신 링크 장애: 1047 WSREP에서 어플리케이션용 노드가 아직 준비되지 않았습니다. (0) | 2023.01.20 |
jstl의 foreach 루프에서 인덱스 값을 가져오는 방법 (0) | 2023.01.20 |
Vue js가 사용자 지정 구성 요소를 렌더링하지 않음 (0) | 2023.01.20 |
MySQL을 datetime 필드와 비교()(시간이 아닌 날짜만) (0) | 2023.01.20 |