0
複数の文字列と比較するif文が必要ですが、複数の文字列と比較すると、作成したエラーメッセージが表示されます。以下は動作しないコードです。テキスト入力を複数の文字列と比較するにはどうすればよいですか?
変数がテスト= 'c3400553' およびTEST2が= 'c3400554' 以下
if (!uname.getText().toString().matches("[cC][0-9]{7}") ||
!uname.getText().toString().equals(test) ||
!uname.getText().toString().equals(test2)
) {
uname.setError("Incorrect ID Format");
}
である1つの比較のために動作するコードです。
String test = "c3400553";
...
if (!uname.getText().toString().matches("[cC][0-9]{7}") ||
!uname.getText().toString().equals(test)
) {
uname.setError("Incorrect ID Format");
}
私は問題があなたには、いくつかの!
を削除する必要があるか、あなたは&&
して||
を交換する必要があるためです
があなたの条件を確認してください。必要に応じて '&&'と '||'を必ず使用してください。 '!'(オペレータではない)の使用法もチェックしてください。とりわけ、[mcve] – Idos
を提供してください。unameはユーザ入力から編集テキストフィールドを参照します –
"複数文字列テスト"の条件は常にtrueを返します。それはちょっと(x!= 1)のようです。あなたが本当に望むのは(x!= 1)&&(x!= 2)です。あなたの場合、おそらく何が必要ですか:(!uname.getText()。toString()。matches( "!uname.getText()。toString()。equals(test2)))&&(!c)[0-9] {7} ")&&(!uname.getText()。toString()。 –