私が持っています:
op1 = Integer.parseInt(jTextField1.getText());
op2 = Integer.parseInt(jTextField2.getText());
ただし、まずテキストフィールドの値を整数変数に割り当てることができるかどうかを確認します。それ、どうやったら出来るの?
私はこれを長い間経験してきたので、これがすでにここで尋ねられたなら、私を許して
代入は割り当てられた値(この場合は_0
_)を返し、if
はtrue
に評価される式を予期するため、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;
}
_
これは私のために働く。文字列がプリミティブであるか数字であるかを識別するために。
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ブロックで囲み、その例外をキャッチする必要があります。
基本的に、特定の文字列が有効な整数であるかどうかを確認するか、特定の文字列が有効な整数であり、解析時に例外が発生する可能性があると仮定する必要があります。