我有一个两难的境地,我试图找出将名为(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
}
答案 0 :(得分:2)
你的第一个选择不会做你期望的事情。即使someArray.equals(anotherArray)
进行元素比较(它没有) - 你需要让特殊数组包含现有数组的所有对象,顺序完全相同。从这个意义上说:首先要理解为什么这种方法在很多方面存在缺陷,然后放弃它。
第二个选项很好,但是如果你真的想要“改进”整个事情 - 请改用ArrayList
- 它有一个contains()
方法。
答案 1 :(得分:2)
您可以将数组转换为List,然后使用List::contains
检查列表是否包含代码:
boolean check = Arrays.asList(badcodess).contains(code);