This question already has an answer here:
I have a dilemma I am trying to find out the best way to compare a string variable called (code) to an array of strings. if it equal it i want it to break the for loop. Which would should I select. I think the 2nd one will work but the 1st one seems like it would and its simpler. Any advice would be appreciated.
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
}
}
--------------based on answer ----------------------
String[] badcodes = {"8QQ", "8BQ", "8JQ"};
boolean check = Arrays.asList(badcodess).contains(code);
if (check = true){
// do something
}else{
do something
}
You can convert your array to a List then use List::contains
to check if the list contain the code or not :
boolean check = Arrays.asList(badcodess).contains(code);
if (check){//do something}else{//do something else}
no need to use check = true
this is an assignment and not comparing, to check if a check
equals to true or not you need to use double equal - YCF_Lif(check)
it equivalent to if(check == true)
- YCF_L
Your first option would not do what you expect to do. And even if someArray.equals(anotherArray)
would do an element-wise comparison (which it doesn't) - you would need to have the special array contain all objects of the existing array, in the exact same order. In that sense: first understand why this approach is flawed in many ways, to then drop it.
The second option is fine, but if you really want to "improve" the whole thing - use ArrayList
instead - which has a contains()
method.
code
? - Federico klez CullocaString
will never be equal to aString[]
- csmckelvey