将字符串数组与变量Java进行比较

时间:2018-03-14 16:33:08

标签: java arrays string foreach

我有一个两难的境地,我试图找出将名为(code)的字符串变量与字符串数组进行比较的最佳方法。如果它相等,我希望它打破for循环。我该选哪个。我认为第二个会起作用,但第一个看起来会像它会更简单。任何意见,将不胜感激。

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
     }

2 个答案:

答案 0 :(得分:2)

你的第一个选择不会做你期望的事情。即使someArray.equals(anotherArray)进行元素比较(它没有) - 你需要让特殊数组包含现有数组的所有对象,顺序完全相同。从这个意义上说:首先要理解为什么这种方法在很多方面存在缺陷,然后放弃它。

第二个选项很好,但是如果你真的想要“改进”整个事情 - 请改用ArrayList - 它有一个contains()方法。

答案 1 :(得分:2)

您可以将数组转换为List,然后使用List::contains检查列表是否包含代码:

boolean check = Arrays.asList(badcodess).contains(code);