1

私はJavaを初めて使用します。文字列または数値の入力フィールドをチェックするために、このコードを作成しました。

try {
    int x = Integer.parseInt(value.toString());
} catch (NumberFormatException nFE) {
    // If this is a string send error message
    throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR,
            "  " + findValue + " must be number!", null));
}

番号の同じチェックを作成しますが、if(){}try-catchなしで使用するにはどうすればよいですか?

4

2 に答える 2

2

patternwithメソッドを使用できますString#matches:-

String str = "6";

if (str.matches("[-]?\\d+")) {
    int x = Integer.parseInt(str);
}

"[-]?\\d+"パターンはdigits、オプションの-記号が前に付いた、の任意のシーケンスに一致します。

"\\d+"1つ以上の数字に一致することを意味します。

于 2012-11-27T21:02:35.557 に答える
0

例外を明示的にキャッチしたくない場合は、ヘルパーメソッドを作成することをお勧めします。

例えば。

public class ValidatorUtils {

    public static int parseInt(String value) {
        try {
            return Integer.parseInt(value);
        } catch (NumberFormatException e) {
            throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR,
            "  " + findValue + " must be number!", null));
        }
    }
}

public static void main(String[] args) {

    int someNumber = ValidatorUtils.parseInt("2");
    int anotherNumber = ValidatorUtils.parseInt("nope");

}

このように、ifステートメントを気にする必要はありません。さらに、コードで整数を2回解析する必要もありません。

于 2012-11-27T21:29:08.513 に答える