자바에서 문자열을 비교하는 방법에는 여러가지가 있습니다. 주로 “equals()”, “compareTo()”, “equalsIgnoreCase()” 등의 메서드를 활용하여 문자열을 비교합니다. 3개 함수의 차이와 사용법에 대해 알아보겠습니다.
◎ “equals()” 메서드 |
“boolean result = str1.equals(str2);” 구문은 두 개의 문자열 “str1”과 “str2”를 비교하여 논리값(boolean)을 변수 “result”에 저장합니다.
boolean result = str1.equals(str2);
l boolean result: 비교 결과를 저장할 변수입니다. ”true” 또는 ”false” 값을 가집니다.
l str1.equals(str2): 두 문자열을 비교하는 메서드입니다.
- str1: 비교할 첫 번째 문자열입니다.
- str2: 비교할 두 번째 문자열입니다.
l equals(): 문자열 비교 메서드입니다.
◎ “compareTo()” 메서드 |
코드는 두 개의 문자열 “str1”과 “str2”을 사전순으로 비교하여 결과를 정수형 변수 “result”에 저장합니다.
int result = str1.compareTo(str2);
l int result: 비교 결과를 저장할 정수형 변수입니다.
l str1.compareTo(str2): 두 문자열을 비교하는 메서드입니다.
- str1: 비교할 첫 번째 문자열입니다.
- str2: 비교할 두 번째 문자열입니다.
l compareTo(): 문자열을 사전순으로 비교하는 메서드입니다.
◎ “equalsIgnoreCase()” 메서드 |
“boolean result = str1.equalsIgnoreCase(str2);” 구문은 두 개의 문자열 “str1”과 “str2”을 대소문자를 구분하지 않고 비교하여 결과를 논리값 (boolean) 변수 “result”에 저장합니다.
boolean result = str1.equalsIgnoreCase(str2);
l boolean result: 비교 결과를 저장할 논리값 변수입니다. ”true” 또는 ”false” 값을 가집니다.
l str1.equalsIgnoreCase(str2): 두 문자열을 비교하는 메서드입니다.
- str1: 비교할 첫 번째 문자열입니다.
- str2: 비교할 두 번째 문자열입니다.
l equalsIgnoreCase(): 문자열을 대소문자를 구분하지 않고 비교하는 메서드입니다.
◎ 예제 1: “equals()” 메서드 사용 |
예제에서는 “equals()” 메서드를 사용하여 대소문자를 구분하여 두 문자열을 비교했습니다. “equals()” 함수는 문자열을 대소문자를 구분하여 비교합니다. 즉, 두 문자열이 완전히 동일한 경우에만 “true”를 반환하며, 대소문자가 다르면 “false”를 반환합니다. 대소문자를 무시하고 비교하려면 “equalsIgnoreCase()” 함수를 사용해야 합니다.
public class StringComparisonExample {
public static void main(String[] args) {
// 문자열 선언 및 초기화
String str1 = "Hello";
String str2 = "hello";
// equals() 메서드를 사용한 대소문자 구분 비교
boolean result = str1.equals(str2);
// 결과 출력
System.out.println("equals() 메서드 결과: " + result);
}
}
[출력]
equals() 메서드 결과: false
◎ 예제 2: “compareTo()” 메서드 사용 |
예제에서는 “compareTo()” 메서드를 사용하여 대소문자를 구분하여 두 문자열을 비교했습니다. 결과는 두 문자열의 사전적 순서에 따라 양수, 음수, 또는 0이 됩니다.
public class StringComparisonExample2 {
public static void main(String[] args) {
// 문자열 선언 및 초기화
String str1 = "Apple";
String str2 = "Banana";
// compareTo() 메서드를 사용한 대소문자 구분 비교
int result = str1.compareTo(str2);
// 결과 출력
System.out.println("compareTo() 메서드 결과: " + result);
}
}
[출력]
compareTo() 메서드 결과: -1
◎ 예제 3: “equalsIgnoreCase()” 메서드 사용 |
이 예제에서는 “equalsIgnoreCase()” 메서드를 사용하여 대소문자를 무시하고 두 문자열을 비교했습니다.
public class StringComparisonExample3 {
public static void main(String[] args) {
// 문자열 선언 및 초기화
String str1 = "WORLD";
String str2 = "world";
// equalsIgnoreCase() 메서드를 사용한 대소문자 무시 비교
boolean result = str1.equalsIgnoreCase(str2);
// 결과 출력
System.out.println("equalsIgnoreCase() 메서드 결과: " + result);
}
}
[출력]
equalsIgnoreCase() 메서드 결과: true
◎ equals() 함수와 compareTo() 함수의 차이는 ? |
“equals()”와 “compareTo()” 메서드의 주요 차이점은 다음과 같습니다.
1. 반환 값의 타입
- “equals()”: “boolean” 타입을 반환합니다. 두 객체가 동등한지 여부를 판단하여 “true” 또는 “false”를 반환합니다.
- “compareTo()”: “int” 타입을 반환합니다. 두 객체의 순서를 비교하고, 음수, 양수, 또는 0을 반환합니다.
2. 사용 목적
- “equals()”: 두 객체가 동등한지 여부를 판단할 때 사용됩니다. 문자열이나 객체가 같은지를 비교할 때 사용합니다.
- “compareTo()”: 두 객체의 순서를 비교할 때 사용됩니다. 정렬된 컬렉션에서 사용됩니다.
3. 비교 방법
- “equals()”: 객체의 내용이 동일한지를 비교합니다.
- “compareTo()”: 객체의 순서를 비교합니다.
4. 동등성 vs 순서 비교
- “equals()”: 두 객체의 내용이 같으면 동등하다고 판단합니다.
- “compareTo()”: 두 객체의 순서를 비교하여 크기를 결정합니다.
예제를 통해 두 메서드의 차이를 살펴보겠습니다. 예제에서는 “equals()”를 사용하여 두 문자열이 동등한지를 비교하고, “compareTo()”를 사용하여 두 문자열의 순서를 비교합니다. equals() 함수에서 두 변수의 값이 다르므로 false 를 반환합니다. compareTo() 에서는 “apple” 이 “banana” 보다 앞에 오므로 -1 을 반환하였습니다.
public class ComparisonExample {
public static void main(String[] args) {
// 예제 문자열
String str1 = "apple";
String str2 = "banana";
// equals() 사용
boolean equalsResult = str1.equals(str2);
System.out.println("equals() 결과: " + equalsResult);
// compareTo() 사용
int compareToResult = str1.compareTo(str2);
System.out.println("compareTo() 결과: " + compareToResult);
}
}
[출력]
equals() 결과: false
compareTo() 결과: -1
'자바(JAVA)' 카테고리의 다른 글
자바(Java) for 문 사용하기 (1) | 2024.03.26 |
---|---|
자바(Java) switch case 구문 사용하기 (0) | 2024.03.25 |
자바(Java) if else 구문 사용하기 (0) | 2024.03.20 |
자바(Java) 기본 데이터 타입 (1) | 2024.03.19 |
자바(Java) 객체 배열 정렬하기 (0) | 2024.02.28 |
자바(Java) String 배열 정렬하기 (1) | 2024.02.26 |
자바(Java) replace() 와 replaceAll() 함수의 차이는? (0) | 2024.02.20 |
자바 OpenJDK 설치와 환경 변수 설정하기 (0) | 2024.02.18 |