# equals
- 자바에서 문자열 비교 시 사용하는 함수로 모든 객체의 부모 클래스인 Object에 정의되어있는 메소드 중 하나이다.
// String.java
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = value.length;
if (n == anotherString.value.length) {
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
while (n-- != 0) {
if (v1[i] != v2[i])
return false;
i++;
}
return true;
}
}
return false;
}
## 사용방법
- 아래와 같이 사용하여 두 개의 문자열이 동일한지 비교 가능하며, 객체의 순서를 바꿔도 동일한 결과를 얻을 수 있다.
- 결과는 true or false 반환.
string str1 = "문자열비교";
string str2 = "문자열비교";
str1.equals(str2)
str2.equals(str1)
## 주의할 점 (NullPointerException)
- 아래와 같이 객체 str1이 null인 경우 NullPointerException 발생.
String str1 = null;
String str2 = "str1이널값인경우";
str1.equals(str2);
=>
오류발생.
- 인자로 전달되는 str2가 null 인 경우에는 NullPointerException 발생하지 않음.
String str1 = "str2이널값인경우";
String str2 = null;
str1.equals(str2);
- null 여부를 신경쓰고 싶지 않은 경우 Objects.equals() 또는 StringUtils.equals() 사용.