この質問にはすでに答えがあります。
(code)という文字列変数を文字列の配列と比較するための最良の方法を見つけようとしているというジレンマがあります。それが等しい場合は、forループを中断したいと思います。どちらを選ぶべきでしょう。私は2番目のものはうまくいくと思いますが、1番目のものはそれがするようにそしてより簡単であるように見えます。何かアドバイスがあれば幸いです。
String[] badcodes = {"8QQ", "8BQ", "8JQ"};
if (code.equals(badcodes)) {
break;
}
String[] badcodess = {"8QQ", "8BQ", "8JQ"};
for (String s : badcodess) {
if (s.equals(code)) {
break; // break out of for loop
}
}
--------------回答に基づいて----------------------
String[] badcodes = {"8QQ", "8BQ", "8JQ"};
boolean check = Arrays.asList(badcodess).contains(code);
if (check = true){
// do something
}else{
do something
}
配列をListに変換してから使うことができますList::containsリストにコードが含まれているかどうかを確認します。
boolean check = Arrays.asList(badcodess).contains(code);
if (check){//do something}else{//do something else}使用する必要はありませんcheck = trueこれは代入であり、比較ではありません。checktrueと等しいか、そうでないか、double equalを使用する必要があります。 - YCF_Lif(check)それと同等if(check == true) - YCF_L
あなたの最初の選択肢はあなたが期待することをしないでしょう。そして場合でもsomeArray.equals(anotherArray)要素ごとの比較を行います(そうではありません) - 既存の配列のすべてのオブジェクトを特別な配列にまったく同じ順序で含める必要があります。その意味では、まずこのアプローチがさまざまな点で欠陥がある理由を理解してから、それをやめてください。
2番目の選択肢は問題ありませんが、あなたが本当に全体を「改善」したいのなら - 使用してくださいArrayListその代わりに - contains()方法。
code? - Federico klez CullocaStringaと等しくなることはありませんString[]- csmckelvey