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)

 

 

 

 

 

 

 

반응형