두 문자열을 비교 할때 잘못 알고 사용 하는 것 주의 하나가 문자열 동등비교를 ==로 한다는 것이다.
이것은 너무나 위험한 일이다.
언뜻 보기에는 버그로 보이지 않고 컴파일 시에도 에러가 발생하지 않는다.
하지만 이것은 찾아 내기 어려운 버그가 될수도 있고 치명적인 결과가 나타날수도 있다.
왜냐하면, 문자열의 비교에 있어서 == 은 두 문자열이 단지 같은 저장공간에 있는가 만을 비교하기 때문이다.
String A="aaa";
String B="aaa";
if(A==B) <--- (X)
if(A.equals(B)) <---(O)
같은 문자열 일지라도 저장시킬때 다른 저장공간에 저장이 되어 있다면 이 둘의 동등비교시 ==을
사용하게 되면 이것은 false를 반환하게 된다.
그러므로 문자열 비교는 반드시 equals를 사용 해야 한다.
equalslgnoreCase : 두 문자열 비교 시 대소문자를 비교하지 않는다는 기능과
두 문자열의 비교시 우선 두 문자열의 길이가 같은지 먼저 확인함.
스크랩 : http://www.usingtech.co.kr/zboard/zboard.php?id=Java_Tip&page=2&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=4
이것은 너무나 위험한 일이다.
언뜻 보기에는 버그로 보이지 않고 컴파일 시에도 에러가 발생하지 않는다.
하지만 이것은 찾아 내기 어려운 버그가 될수도 있고 치명적인 결과가 나타날수도 있다.
왜냐하면, 문자열의 비교에 있어서 == 은 두 문자열이 단지 같은 저장공간에 있는가 만을 비교하기 때문이다.
String A="aaa";
String B="aaa";
if(A==B) <--- (X)
if(A.equals(B)) <---(O)
같은 문자열 일지라도 저장시킬때 다른 저장공간에 저장이 되어 있다면 이 둘의 동등비교시 ==을
사용하게 되면 이것은 false를 반환하게 된다.
그러므로 문자열 비교는 반드시 equals를 사용 해야 한다.
equalslgnoreCase : 두 문자열 비교 시 대소문자를 비교하지 않는다는 기능과
두 문자열의 비교시 우선 두 문자열의 길이가 같은지 먼저 확인함.
스크랩 : http://www.usingtech.co.kr/zboard/zboard.php?id=Java_Tip&page=2&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=4