programing

java.lang을 방지하려면 어떻게 해야 하나요?NumberFormatException:입력 문자열의 경우: "N/A"?

newsource 2023. 1. 20. 16:12

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적절히.

  1. 예외 처리

    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