parsestring parse java string jtextarea parseint

parsestring - Java-comprobando si ParseInt lanza una excepción



parsestring java (8)

Me pregunto cómo hacer algo solo si Integer.parseInt (lo que sea) no falla.

Más específicamente, tengo un jTextArea de valores especificados por el usuario separados por saltos de línea.

Quiero comprobar cada línea para ver si se puede convertir en un int.

Imaginé algo como esto, pero no funciona:

for(int i = 0; i < worlds.jTextArea1.getLineCount(); i++){ if(Integer.parseInt(worlds.jTextArea1.getText(worlds.jTextArea1.getLineStartOffset(i),worlds.jTextArea1.getLineEndOffset(i)) != (null))){} }

Cualquier ayuda apreciada.


Compruebe si es entero analizable

public boolean isInteger(String string) { try { Integer.valueOf(string); return true; } catch (NumberFormatException e) { return false; } }

o usar un escáner

Scanner scanner = new Scanner("Test string: 12.3 dog 12345 cat 1.2E-3"); while (scanner.hasNext()) { if (scanner.hasNextDouble()) { Double doubleValue = scanner.nextDouble(); } else { String stringValue = scanner.next(); } }

o usar expresiones regulares como

private static Pattern doublePattern = Pattern.compile("-?//d+(//.//d*)?"); public boolean isDouble(String string) { return doublePattern.matcher(string).matches(); }


Puede usar la sentencia try..catch en java, para capturar una excepción que pueda surgir de Integer.parseInt ().

Ejemplo:

try { int i = Integer.parseint(stringToParse); //parseInt succeded } catch(Exception e) { //parseInt failed }


Puedes usar un escáner en lugar de try-catch:

Scanner scanner = new Scanner(line).useDelimiter("/n"); if(scanner.hasNextInt()){ System.out.println("yes, it''s an int"); }


Sería algo como esto.

String text = textArea.getText(); Scanner reader = new Scanner(text).useDelimiter("/n"); while(reader.hasNext()) String line = reader.next(); try{ Integer.parseInt(line); //it worked } catch(NumberFormatException e){ //it failed } }



en lugar de try y catch expresiones ... es mejor ejecutar expresiones regulares en la cadena para asegurarse de que sea un número válido ...


parseInt lanzará NumberFormatException si no puede analizar el entero. Así que haciendo esto responderemos a tu pregunta.

try{ Integer.parseInt(....) }catch(NumberFormatException e){ //couldn''t parse }


public static boolean isParsable(String input){ boolean parsable = true; try{ Integer.parseInt(input); }catch(ParseException e){ parsable = false; } return parsable; }

tenga en cuenta que quise decir ParseException como el tipo adecuado de excepción para el caso específico