Como posso evitar java.lang.NumberFormatException: Para string de input: “N / A”?

Ao executar meu código, estou recebendo 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 essa exceção ocorra?

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

Verifique antes de analisar. ou manipular Exception corretamente.

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

ou – Correspondência de padrão inteiro

 String input=...; String pattern ="-?\\d+"; if(input.matches("-?\\d+")){ // any positive or negetive integer or not! ... } 

Obviamente, você não pode analisar N/A para o valor int . você pode fazer algo como seguir para lidar com esse NumberFormatException .

  String str="N/A"; try { int val=Integer.parseInt(str); }catch (NumberFormatException e){ System.out.println("not a number"); } 

Faça um manipulador de exceções 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 

Integer.parseInt (str) lança NumberFormatException se a string não contiver um inteiro analisável. Você pode ter o mesmo que abaixo.

 int a; String str = "N/A"; try { a = Integer.parseInt(str); } catch (NumberFormatException nfe) { // Handle the condition when str is not a number. } 

“N / A” é uma string e não pode ser convertida em um número. Pegue a exceção e cuide dela. 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; }