Please Enable JavaScript!
Gon[ Enable JavaScript ]

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

자바(JAVA)
반응형

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