0

ユーティリティ関数を使用してintを取得し、不正な入力によって
NumberFormat例外が発生するかどうかを確認しようとしていますが、以下の関数で10進数以外の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
4

2 に答える 2

1

私があなたを理解していれば...多分あなたはこれを行うことができます:

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;
}
于 2012-07-11T16:30:28.140 に答える
0

1つは10進数チェッカー用、もう1つは非10進数整数用です。

//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;
}

//非10進整数

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;
}
于 2012-07-11T17:11:16.387 に答える