Como posso evitar java?idioma.Number FormatException: For input string: "N/A"? [fechado]

Enquanto estou a executar o meu código, estou a receber um 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)`
Como posso evitar que esta excepção ocorra?

Author: hichris123, 2013-09-10

5 answers

"N/A" não é inteiro. Ele deve lançar NumberFormatException Se você tentar analisá-lo para inteiro.

Verifique antes de analisar. ou manusear Exception adequadamente.

  1. Tratamento De Excepção *
try{
   int i = Integer.parseInt(input);
}catch(NumberFormatException ex){ // handle your exception
   ...
}

Ou - correspondência de padrões inteiros -

String input=...;
String pattern ="-?\\d+";
if(input.matches("-?\\d+")){ // any positive or negetive integer or not!
 ...
}
 60
Author: Subhrajyoti Majumder, 2013-09-10 06:24:24
Obviamente não podes processar o valor de N/A para int. você pode fazer algo como seguir para lidar com isso NumberFormatException .
   String str="N/A";
   try {
        int val=Integer.parseInt(str);
   }catch (NumberFormatException e){
       System.out.println("not a number"); 
   } 
 5
Author: Ruchira Gayan Ranaweera, 2013-09-10 06:22:17

Faça um tratamento de excepção como este,

private int ConvertIntoNumeric(String xVal)
{
 try
  { 
     return Integer.parseInt(xVal);
  }
 catch(Exception ex) 
  {
     return 0; 
  }
}

.
.
.
.

int xTest = ConvertIntoNumeric("N/A");  //Will return 0
 5
Author: Rajaprabhu Aravindasamy, 2013-09-10 06:25:18

Inteiro.parseInt (str) atira NumberFormatException Se o texto não contém um inteiro parsable. Podes comer o mesmo que lá em baixo.

int a;
String str = "N/A";

try {   
   a = Integer.parseInt(str);
} catch (NumberFormatException nfe) {
  // Handle the condition when str is not a number.
}
 3
Author: Jayamohan, 2013-09-10 06:23:38

"N / A" é uma cadeia e não pode ser convertida para um número. Apanha a excepção e trata disso. Por exemplo:

    String text = "N/A";
    int intVal = 0;
    try {
        intVal = Integer.parseInt(text);
    } catch (NumberFormatException e) {
        //Log it if needed
        intVal = //default fallback value;
    }
 2
Author: rocketboy, 2013-09-10 06:21:53