ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Java | str.equals() & str.contentEquals() 비교
    JAVA/JAVA 2020. 1. 21. 17:10

    str.equals() & str.contentEquals() Method 비교


    str.equals()

    str변수의 문자열과 매개변수의 문자열 값이 같다면 true를 반환하는 메소드

    매개변수의 객체가 String의 인스턴스인지도 확인함
    즉, String 객체와 StringBuffer 객체의 문자열을 비교할 수 없음

     

    ※ 인스턴스(instance) : 클래스를 사용하여 만든 객체를 인스턴스라고 함, 객체와 동일한 단어라고 할 수 있음


    str.contentEquals()

    str변수의 문자열과 매개변수의 문자열의 값이 정확히 일치하면 true를 반환하는 메소드

    매개변수의 객체가 String의 인스턴스인지는 확인하지 않고 내용만 비교함
    즉, String 객체를 StringBuffer / StringBuilder / Char Array 객체들과 비교 가능

    public class StrMethod {
        public static void main(String[] args) {
            String a = "abc";
            String b = "abc";
            StringBuffer c = new StringBuffer("abc");
    
            // str.quals() 메소드
            System.out.println(a.equals(b));    // true
            System.out.println(a.equals(c));    // false
    
            // str.contentEquls() 메소드
            System.out.println(a.contentEquals(b)); // true
            System.out.println(a.contentEquals(c)); // true
        }
    }

    StringBuffer Class

    String 클래스의 인스턴스는 한 번 생성되면 읽기만 할 수 있고 변경은 불가,

    StringBuffer 클래스의 인스턴스는 그 값을 변경할 수 있고, 추가도 할 수 있음

    • StringBuffer 클래스는 내부적으로 buffer(버퍼)라고 하는 독립적인 공간을 가짐
    • 버퍼 크기의 기본값은 16개의 문자를 저장할 수 있는 크기이며,
      생성자를 통해 크기를 별도로 설정할 수 있음
    • 인스턴스 생성시 사용자가 설정한 크기보다 언제나 16개의 문자를
      더 저장할 수 있도록 여유있는 크기로 생성됨

    거의 비슷해 보이는 메소드인 str.equals()와 str.contentEquals()를 비교해보았습니다.

    equals()는 String 끼리의 문자열이 동일한 지 확인할 때 사용하고,

    contentEquals()는 String과 다른 객체와의 문자열이 동일한 지를 확인할 때도 사용이 가능하다는 것이 핵심입니다.

    StringBuffer 클래스에 대해서는 자세히 다루지 않고 문맥을 이해할 수 있을 정도로만 참조했습니다.

    자세한 내용이 궁금하신 분들은 아래의 주소로 방문해 보시기 바랍니다.

     

    참고 사이트 주소 : http://tcpschool.com/java/java_api_stringBuffer

    댓글

Designed by Tistory.