Java | str.equals() & str.contentEquals() 비교
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