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"));
     }
}

 

 

반응형