IT/Java
[Java] String / compareTo(String anotherString) 사용법 및 예제
hi.anna
2024. 12. 2. 19:06
compareTo(anotherString)
두 개의 문자열을 사전적으로(lexicographically) 비교하는 데 사용됩니다.
- 비교는 문자열의 각 문자에 대한 유니코드 값을 기반으로 합니다.
- 첫 번째로 다른 문자에서 비교 결과가 반환됩니다.
- 비교는 대소문자를 구분하며, 대문자는 소문자보다 작습니다.
Syntax
java.lang.String
public int compareTo(String anotherString)
매개변수
anotherString
- 비교할 문자열
리턴 값
- 0: 두 문자열이 동일할 경우
- 양수값: 문자열이 anotherString보다 사전적으로 클 경우
- 음수값: 문자열이 anotherString보다 사전적으로 작을 경우
예제 1.
코드
public class StringTest01 {
public static void main(String[] args) {
String str1 = "apple";
String str2 = "banana";
String str3 = "apple";
String str4 = "Apple";
// Case 1
System.out.println("'apple' / 'banana': " + str1.compareTo(str2)); // -1
// Case 2
System.out.println("'banana' / 'apple': " + str2.compareTo(str1)); // 1
// Case 3: 같은 문자열
System.out.println("'apple' / 'apple': " + str1.compareTo(str3)); // 0
// Case 4: 대소문자 비교
System.out.println("'apple' / 'Apple': " + str1.compareTo(str4)); // 32
}
}
결과
'apple' / 'banana': -1
'banana' / 'apple': 1
'apple' / 'apple': 0
'apple' / 'Apple': 32
설명
'apple'과 'banana' 비교
'a'의 유니코드 값은 'b'보다 작으므로 결과는 음수 (-1)
'banana'와 'apple' 비교
'b'의 유니코드 값이 'a'보다 크므로 결과는 양수 (1)
'apple'과 'apple' 비교
두 문자열이 같으므로 결과는 0
'apple'과 'Apple' 비교
'a'와 'A'의 유니코드 값 차이는 32.
compareTo()는 대소문자를 구분하므로 결과는 양수(32)
예제 2. 동일한 문자열의 길이가 다른 경우 예제
코드
public class StringTest02 {
public static void main(String[] args) {
String str1 = "apple";
String str2 = "applepie";
String str3 = "apple";
String str4 = "apples";
// Case 1: str1 < str2 (2번째 문자열이 3글자 더 길다)
System.out.println("'apple' / 'applepie': " + str1.compareTo(str2)); // -3
// Case 2: str1 == str3 (동일한 문자열)
System.out.println("'apple' / 'apple': " + str1.compareTo(str3)); // 0
// Case 3: str4 > str1 (1번째 문자열이 1글자 더 길다)
System.out.println("'apples' / 'apple': " + str4.compareTo(str1)); // 1
}
}
결과
'apple' / 'applepie': -3
'apple' / 'apple': 0
'apples' / 'apple': 1
설명
'apple'과 'applepie' 비교
두 문자열에서 첫번째 차이나는 위치는 'applepie'의 6번째 문자인 'p'입니다.
따라서 'apple'이 더 작고, 음수가 리턴됩니다.(-3)
결과값은 문자열의 길이 차이를 나타냅니다.
'apple'과 'apple' 비교
두 문자열이 동일하므로 결과는 0입니다.
'apples'과 'apple' 비교
첫번째 문자열의 길이가 더 길고, 1글자 차이가 나기때문에 양수가 리턴됩니다.(1)
반응형