이 질문에는 이미 답변이 있습니다.
딜레마가 있습니다. 문자열 배열에 (코드)라는 문자열 변수를 비교하는 가장 좋은 방법을 찾으려고합니다. 그것이 같으면 그것은 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::contains
목록에 코드가 포함되어 있는지 확인하십시오.
boolean check = Arrays.asList(badcodess).contains(code);
if (check){//do something}else{//do something else}
사용할 필요가 없다.check = true
이것은 과제이고 비교가 아닌 것입니다.check
true와 같거나 같지 않음 - YCF_Lif(check)
그것은if(check == true)
- YCF_L
첫 번째 옵션은 예상 한대로하지 않습니다. 그리고someArray.equals(anotherArray)
요소 별 비교를 할 것입니다. (그렇지 않습니다) - 특별한 배열에 기존 배열의 모든 객체를 정확하게 포함시켜야합니다. 그런 의미에서, 먼저이 접근법이 여러 가지 결함이있는 이유를 이해하고 그 다음에 그것을 버리십시오.
두 번째 옵션은 괜찮지 만, 모든 것을 "향상"시키고 싶다면 - useArrayList
대신 -contains()
방법.
code
? - Federico klez CullocaString
절대로String[]
- csmckelvey