본문 바로가기
Programming

Java string comparison

by leanu 2010. 1. 7.
C++에 익숙한 사람들이 자주 저지른 실수중에 하나는,

자바에서 string 비교시 == 를 사용한다는 점이다. 

하지만 이런경우 동일한 문자열을 지니고 있어도 어쩔때는 true, 어쩔때는 false 를 리턴하는데,

그 이유는 java 안에서의 == 에 있다.

C++ 에서 string 에 대해 == 를 쓰는경우,
string 클래스의 operator 를 이용하는 것이며,

java 에서의 == 는,
system operator 로서 string object 를 하나의 변수로 보고 그 안의 값을 통채로 비교하게 되는 것이다.

따라서 동일한 문자열을 지니고 있어도 그 이외의 내부 변수는 다를 수 있으므로 
자바에서 == 는 문자열을 비교하는데에는 적합하지 않다.

결론. 자바에서 문자열이 같은지를 비교할 경우에는 
string interface인 equals() 나 compareTo() 를 사용한다.

댓글