자바(JAVA)

자바(Java) 문자열을 비교하는 여러가지 방법

녹두장군1 2024. 3. 14. 07:38
반응형

자바에서 문자열을 비교하는 방법에는 여러가지가 있습니다. 주로 “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
반응형