반응형

프로그래밍을 처음 배울때 if문을 배우면서 숫자 비교 같은 것을 배우게 됩니다. 

그러다가 응용 단계로 가면 문자열 비교를 배우게 되죠.

아마 대부분 아래와 같이 쓰지 않았었나 생각됩니다.. (물론 저도 포함 ^^;;) 

 

String str = "abc";
String input = "abc";
 
if(str == input) {
   system.out,println("true");
} else {
   system.out,println("false");
}


 

결과는, 당연히 false가 찍히겠죠. false가 찍히는 원인은 문자열 변수마다 가지고 있는 hashCode가 다르기 때문입니다.

따라서, String 비교시에는 아래와 같이 equals를 사용하면 원하는 결과인 true를 얻을 수 있습니다.

 

if(str.equals(input) {
   system.out.println("true");
} else {
   system.out.println("false");
}


 

하지만, equalsIgnoreCase라는 것이 있습니다. equals같은 경우에는 대소문자 구분을 철저히 하지만,

equalsIgnoreCase 같은 경우 대소문자를 구분하지 않습니다. 클라이언트에서 입력받은 String을 비교할 때 유용하게 쓰이겠죠.

아래와 같이 말입니다.

 


 

결과는 true가 찍힙니다.

String str = "abc"
String input = "AbC";
 
if(str.equalsIgnoreCase(input)) {
   system.out.println("true");
} else {
   system.out.println("false");
}

 

보통은 대소문자 구분 처리할때 toLowerCase(모두 소문자 변환), toUpperCase(모두 대문자 변환) 등을 이용하여 사용하지만,

equalsIgnoreCase를 사용하면, 한방에 해결할 수 있어서 좋은 것 같습니다.

반응형
,