¿Cómo puedo evitar java.lang.NumberFormatException: para cadena de entrada: “N / A”?

Mientras NumberFormatException mi código, NumberFormatException una 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)` 

¿Cómo puedo evitar que ocurra esta excepción?

"N/A" no es un número entero. Debe arrojar NumberFormatException si intenta analizarlo en entero.

Verifica antes de analizar. o manejar Exception correctamente.

  1. Manejo de excepciones*
 try{ int i = Integer.parseInt(input); }catch(NumberFormatException ex){ // handle your exception ... } 

o – Coincidencia de patrones enteros

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

Obviamente, no puede analizar N/A al valor int . puede hacer algo como seguir para manejar esa NumberFormatException .

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

Haga un manejador de excepciones 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) arroja NumberFormatException si la cadena no contiene un entero analizable. Puedes tener lo mismo que abajo.

 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” es una cadena y no se puede convertir a un número. Captura la excepción y manejarlo. Por ejemplo:

  String text = "N/A"; int intVal = 0; try { intVal = Integer.parseInt(text); } catch (NumberFormatException e) { //Log it if needed intVal = //default fallback value; }