このメソッドはいくつかのうちの1つです。私はここに "if(dig1.contains()& & dig2.contains()& & res.contains())"という行が正しいかどうか疑問に思っていました。正規表現で 1.文字列に文字がないことを確認する必要があります 2. string1とstring2の合計が3番目の文字列に合致するかどうかを確認する必要があります。それ以外の場合はfalseを返します。皆さんのお手伝いをありがとうございます。これはこれまでのところ私が持っているものです。文字がない場合はtrueを返します。
/**
Returns true if the puzzle is solved.
@return true if the puzzle has no letters and the
first two numbers add up to the third
*/
public boolean isSolved()
{
String dig1=""+add1;
String dig2=""+add2;
String res=""+result;
//String a1=""+dig1;
if(dig1.contains("[^A-Z]") && dig2.contains("[^A-Z]") && res.contains("[^A-Z]")){
int i=Integer.parseInt(dig1);
int j=Integer.parseInt(dig2);
int k=Integer.parseInt(res);
if(i+j==k)
return true;
else
return false;
}
else
return false;
}
文字列に数字と文字は別として、他の記号が含まれているとしたらどうなりますか? NumberFormatExceptionを取得します。 –
いいえ、それは完全に数字と文字です。入力は次のようになります。add1 = SJF3G add2 = SDFH3 result = 3SH4H。記号やその他のものはありません。ご協力ありがとうございました。 –
もう1つ。私はあなたがこれをする傾向があることに気づいた: 'String dig1 =" "+ add1;'。文字列を連結するには 'String dig1 + = add1;'を実行するか、ある文字列を別の文字列に割り当てる場合は 'String dig1 = add1;'を実行してください。 – user219882