NumberFormatExceptions

Я пытаюсь с помощью функции Utility, чтобы получить int и проверить, приводит ли плохой ввод в
Исключения NumberFormat, есть ли способ работать с недесятичным Int для функции ниже

//--- Utility function to get int using a dialog.

public static int getInt(String mess) {
    int val;
    while (true) { // loop until we get a valid int
        String s = JOptionPane.showInputDialog(null, mess);
        try {
            val = Integer.parseInt(s);
            break;  // exit loop with valid int
        } catch (NumberFormatException nx) {
            JOptionPane.showMessageDialog(null, "Enter valid integer");
        }
    }
    return val;
}

//end getInt

2 ответа

Если я вас понимаю... может быть, вы можете сделать это:

public static int getInt(String mess) {
    int val;
    while (true) { // loop until we get a valid int
        String s = JOptionPane.showInputDialog(null, mess);
        try {
            if(mess.match("^\d+$")){   // Check if it's only numbers (no comma, no dot, only numeric characters)
               val = Integer.parseInt(s); // Check if it's in the range for Integer numbers.
               break;  // exit loop with valid int
            } else  {
               JOptionPane.showMessageDialog(null, "Enter valid integer");
            }
        } catch (NumberFormatException nx) {
            JOptionPane.showMessageDialog(null, "Enter valid integer");
        }
    }
    return val;
}

Попробуйте то, что вы хотите, один для десятичной проверки и один для недесятичного int

// для deciaml

 public static Boolean numberValidate(String text) {
    String expression = "^[+-]?(?:\\d+\\.?\\d*|\\d*\\.?\\d+)[\\r\\n]*$";
    CharSequence inputStr = text;
    Pattern pattern = Pattern.compile(expression);
    Matcher matcher = pattern.matcher(inputStr);
    if (matcher.find()) {
       MatchResult mResult = matcher.toMatchResult();
       String result = mResult.group();
       return true;
    }
    return false;
}

// недесятичный int

public static Boolean numberValidate(String text) {
    String expression = "[a-zA-Z]";
    CharSequence inputStr = text;
    Pattern pattern = Pattern.compile(expression);
    Matcher matcher = pattern.matcher(inputStr);
    if (matcher.find()) {
      MatchResult mResult = matcher.toMatchResult();
      String result = mResult.group();
      return true;
    }
    return false;
}
Другие вопросы по тегам