본문으로 바로가기

1. equals

public boolean equals(Object anObject)

: 문자열을 비교합니다.

: 자바 클래스의 최상위 클래스인 Object 클래스의 equals()를 재정의해서 객체의 번지 비교가 아닌 문자열을 비교합니다.

: 대소문자를 구분하여 같은지 비교합니다.

public boolean equals(Object anObject) {
    if (this == anObject) {
        return true;
    }
    if (anObject instanceof String) {
        String aString = (String)anObject;
        if (coder() == aString.coder()) {
            return isLatin1() ? StringLatin1.equals(value, aString.value)
                              : StringUTF16.equals(value, aString.value);
        }
    }
    return false;
}

 

예시

String apple1 = "apple";
String apple2 = new String("apple");
String apple3 = "APPLE";

System.out.println(apple1.equals(apple2)); // true
System.out.println(apple1.equals(apple3)); // false

 

2. equalsIgnoreCase

public boolean equalsIgnoreCase(String anotherString)

: 문자열을 비교합니다.

: 대소문자를 구분하지 않고 비교합니다.

 

예시

String apple1 = "apple";
String apple2 = "APPLE";
String apple3 = "AppLe";

System.out.println(apple1.equalsIgnoreCase(apple2)); // true
System.out.println(apple1.equalsIgnoreCase(apple3)); // true

 

3. contentEquals

public boolean contentEquals(CharSequence cs)

 

public boolean contentEquals(StringBuffer sb)

: String 객체와 CharSequence 인터페이스를 구현한 객체 혹은 StringBuffer 객체의 문자열을 비교합니다.

: 대소문자를 구분하여 비교합니다.

 

CharSequence 인터페이스

: char 값을 처리하는 인터페이스

: 구현 클래스로는 String, StringBuilder, StringBuffer 등이 있습니다.

 

예시

String apple = "apple";

StringBuilder stringBuilder1 = new StringBuilder();
stringBuilder1.append("apple");

StringBuilder stringBuilder2 = new StringBuilder();
stringBuilder2.append("APPLE");

StringBuffer stringBuffer1 = new StringBuffer();
stringBuffer1.append("apple");

StringBuffer stringBuffer2 = new StringBuffer();
stringBuffer2.append("APPLE");

System.out.println(apple.contentEquals(stringBuilder1)); // true ( contentEquals(CharSequence cs) )
System.out.println(apple.contentEquals(stringBuilder2)); // false ( contentEquals(CharSequence cs) )
System.out.println(apple.contentEquals(stringBuffer1)); // true ( contentEquals(StringBuffer sb) )
System.out.println(apple.contentEquals(stringBuffer2)); // false ( contentEquals(StringBuffer sb) )

 

4. compareTo

public int compareTo(String anotherString)

: 두 문자열 값을 비교하여 정수 값을 반환합니다.

: 대소문자를 구분하여 비교합니다.

: 같을 경우 0 반환

: 다를 경우 특별한 연산? 비교를 통해서 정수 또는 음수 값 반환

 

예시

String apple1 = "apple";
String apple2 = new String("apple");
String apple3 = "APPLE";
String apple4 = "appl";
String apple5 = "app";
String banaba = "banana";

System.out.println(apple1.compareTo(apple2)); // 0 (같음)
System.out.println(apple1.compareTo(apple3)); // 32 (a = 97, A = 65 아스키 코드값 차이)
System.out.println(apple1.compareTo(apple4)); // 1 (문자열 길이 차이)
System.out.println(apple1.compareTo(apple5)); // 2 (문자열 길이 차이)
System.out.println(apple1.compareTo(banaba)); // -1 (a = 97, b = 98 아스키 코드값 차이)

 

5. compareToIgnoreCase

public int compareToIgnoreCase(String str)

: 두 문자열 값을 비교하여 정수 값을 반환합니다.

: 대소문자를 구분하지 않고 비교합니다.

: 같을 경우 0 반환

: 다를 경우 특별한 연산? 비교를 통해서 정수 또는 음수 값 반환

 

예시

String apple1 = "apple";
String apple2 = new String("apple");
String apple3 = "APPLE";
String apple4 = "appl";
String apple5 = "app";
String banaba = "banana";

System.out.println(apple1.compareToIgnoreCase(apple2)); // 0 (같음)
System.out.println(apple1.compareToIgnoreCase(apple3)); // 0 (대소문자 무시 = 같음)
System.out.println(apple1.compareToIgnoreCase(apple4)); // 1 (문자열 길이 차이)
System.out.println(apple1.compareToIgnoreCase(apple5)); // 2 (문자열 길이 차이)
System.out.println(apple1.compareToIgnoreCase(banaba)); // -1 (a = 97, b = 98 아스키 코드값 차이)