JAVA
java: String == 비교 false 나오는 이유
고수트
2021. 11. 19. 23:42
반응형
가끔 String 변수를 == 로 비교하려 할때 같은 값으로 보이지만 false 가 나오는 경우가 있다.
이는 String 변수는 그 값이 설정된 위치를 가리키는 참조형 연산자라 인스턴스가 같은지를 비교해서 그렇다.
간단하게 == 로 비교하기 보다는 equals 를 이용하여 String 은 비교하는 것이 더욱 정확하다.
AAa 라는 String 변수를 모두 대문자로 바꾸는 toUpperCase 함수를 사용하면 AAA 가 되며
이를 "AAA" 와 같은지를 비교하려면 아래와 같이 == 이 아닌 equals 함수를 이용하면 정확하게 비교된다.
public class HelloWorld{
public static void main(String []args){
String s = "AAa";
// == 비교 연산자는 false
System.out.println(s.toUpperCase() == "AAA");
// equals 는 true
System.out.println(s.toUpperCase().equals("AAA"));
}
}
반응형