web-dev-qa-db-ja.com

文字列が有効な整数であるかどうかを確認する方法は?

私が持っています:

 op1 = Integer.parseInt(jTextField1.getText());
 op2 = Integer.parseInt(jTextField2.getText());

ただし、まずテキストフィールドの値を整数変数に割り当てることができるかどうかを確認します。それ、どうやったら出来るの?

私はこれを長い間経験してきたので、これがすでにここで尋ねられたなら、私を許して

8
Dannyl

代入は割り当てられた値(この場合は_0_)を返し、iftrueに評価される式を予期するため、if (int i = 0)は実行できません。またはfalse

一方、目的がjTextField.getText()intに解析できる数値を返すかどうかをチェックすることである場合、解析を試行でき、値がそうでない場合は、適切な場合、NumberFormatExceptionが通知されます。

_try {
    op1 = Integer.parseInt(jTextField1.getText());
} catch (NumberFormatException e) {
    System.out.println("Wrong number");
    op1 = 0;
}
_
16
Warlord

これは私のために働く。文字列がプリミティブであるか数字であるかを識別するために。

private boolean isPrimitive(String value){
        boolean status=true;
        if(value.length()<1)
            return false;
        for(int i = 0;i<value.length();i++){
            char c=value.charAt(i);
            if(Character.isDigit(c) || c=='.'){
                
            }else{
                status=false;
                break;
            }
        }
        return status;
    }

parseIntは、Stringをintに変換できない場合、NumberFormatExceptionをスローします。したがって、parseInt呼び出しをtry catchブロックで囲み、その例外をキャッチする必要があります。

1
xp500

基本的に、特定の文字列が有効な整数であるかどうかを確認するか、特定の文字列が有効な整数であり、解析時に例外が発生する可能性があると仮定する必要があります。

0
Smutje