SeouliteLab

[Java/자바] 문자열(String)을 비교하는 방법 (==, equals, compare) 본문

프로그래밍

[Java/자바] 문자열(String)을 비교하는 방법 (==, equals, compare)

Seoulite Lab 2024. 3. 6. 13:13

자바에서 문자열을 비교하는 것은 프로그래밍에서 매우 중요한 작업입니다. 문자열을 비교할 때 주로 사용되는 방법은 == 연산자, equals() 메서드, compareTo() 메서드 등이 있습니다. 각각의 방법에 대해 예제를 통해 자세히 알아보겠습니다.

예제 1: == 연산자를 이용한 문자열 비교

String str1 = "hello";
String str2 = "hello";
String str3 = new String("hello");

boolean result1 = (str1 == str2);  // true
boolean result2 = (str1 == str3);  // false

== 연산자는 문자열의 주소를 비교합니다. 따라서 같은 문자열 리터럴을 가리키는 경우 true를 반환하고, 새로운 객체를 생성한 경우에는 false를 반환합니다.

예제 2: equals() 메서드를 이용한 문자열 비교

String str1 = "hello";
String str2 = "hello";
String str3 = new String("hello");

boolean result1 = str1.equals(str2);  // true
boolean result2 = str1.equals(str3);  // true

equals() 메서드는 문자열의 내용을 비교합니다. 따라서 문자열의 내용이 같으면 true를 반환합니다.

예제 3: compareTo() 메서드를 이용한 문자열 비교

String str1 = "hello";
String str2 = "world";

int result1 = str1.compareTo(str2);  // 음수
int result2 = str2.compareTo(str1);  // 양수
int result3 = str1.compareTo("hello");  // 0

compareTo() 메서드는 문자열을 사전 순으로 비교합니다. 두 문자열이 같으면 0을 반환하고, str1이 str2보다 앞에 오면 음수를, str1이 str2보다 뒤에 오면 양수를 반환합니다.

예제 4: compareToIgnoreCase() 메서드를 이용한 대소문자 무시 비교

String str1 = "Hello";
String str2 = "hello";

int result = str1.compareToIgnoreCase(str2);  // 0

compareToIgnoreCase() 메서드는 대소문자를 무시하고 문자열을 비교합니다. 따라서 문자열의 내용이 같으면 0을 반환합니다.

예제 5: 문자열 배열 비교

String[] arr1 = {"apple", "banana", "cherry"};
String[] arr2 = {"apple", "banana", "cherry"};

boolean result = Arrays.equals(arr1, arr2);  // true

Arrays.equals() 메서드를 사용하여 문자열 배열을 비교할 수 있습니다. 두 배열의 길이와 각 요소가 모두 같으면 true를 반환합니다.