문자열 비교하기 : ==
연산자
==
연산자는 두 문자열이 동일한 객체를 참조하는지 비교합니다. 즉, 두 문자열이 같은 메모리 주소를 참조하는 경우에만 true
를 반환합니다.
String str1 = "Hello";
String str2 = "Hello";
String str3 = new String("Hello");
System.out.println(str1 == str2); // true
System.out.println(str1 == str3); // false
위 예제에서, str1
과 str2
는 둘 다 "Hello"라는 값을 가지고 있지만 같은 객체를 참조하고 있기 때문에 true
를 반환합니다. str3
는 새로운 객체를 생성하여 "Hello"라는 값을 가지고 있으므로 false
를 반환합니다.
문자열 비교하기 : equals()
메서드
equals()
메서드는 두 문자열의 실제 내용이 같은지 비교합니다. 즉, 두 문자열의 문자들이 동일한지를 비교하여 결과를 반환합니다.
String str1 = "Hello";
String str2 = "Hello";
String str3 = new String("Hello");
System.out.println(str1.equals(str2)); // true
System.out.println(str1.equals(str3)); // true
위 예제에서, str1
과 str2
는 equals()
메서드를 사용하여 비교하였을 때 동일한 문자열을 가지므로 true
를 반환합니다. str3
역시 equals()
메서드를 사용하여 비교하였을 때 동일한 문자열을 가지므로 true
를 반환합니다.
==
와 equals()
의 차이점
==
는 객체의 참조를 비교합니다. 즉, 두 개의 문자열 객체가 동일한 메모리 주소를 참조하는 경우에만 true
를 반환합니다. 이에 반해, equals()
는 객체의 내용을 비교합니다. 즉, 실제로 문자열의 문자들이 동일한 경우에 true
를 반환합니다.
String str1 = "Hello";
String str2 = "Hello";
String str3 = new String("Hello");
System.out.println(str1 == str2); // true
System.out.println(str1 == str3); // false
System.out.println(str1.equals(str2)); // true
System.out.println(str1.equals(str3)); // true
이와 같은 차이로 인해, ==
는 문자열의 내용이 같아도 다른 객체를 참조하는 경우에는 false
를 반환하는 반면, equals()
는 문자열의 내용이 같으면 true
를 반환합니다.
마무리
==
와 equals()
는 문자열 비교를 수행하는 데 사용되는 연산자와 메서드입니다. ==
는 객체의 참조를 비교하고, equals()
는 객체의 내용을 비교합니다. 따라서, 문자열 비교에는 equals()
메서드를 사용하는 것이 더 적합합니다.
댓글