빈 문자열 검사 isEmpty() vs equals()
2025. 4. 2. 14:09ㆍ카테고리 없음
빈 문자열 검사 isEmpty() vs equals()
개발하다보면 사용자에게 입력받은 값이 유효한지 혹은 비었는지 확인하는 경우가 있는데
if(string != null && "".equals(string.replaceAll(" ","")))
이런식으로 빈 문자열을 확인해왔다 근데 String에는 isEmpty()라는 메서드가 있고, 회사에서는 왜 이걸 사용하지 않는 것인지 의문이었다.
그래서 직접 알아보았다.
차이
isEmpty()
- 문자열 길이가 0인지 확인.
equals()
- 같은 객체면 리턴 true
- 길이가 같은 경우
- while문으로 문자하나씩 비교하다 다르면 false
- while문 통과(모든 문자가 같다)하면 true
- 위 과정에서 반환하지 못했다면 false
상황에 따라 다르지만 단순히 입력 받은 문자열이 공백으로만 채워진 경우나 비어있는 경우를 확인할 때는 isEmpty()를 사용하는 것이 가독성도 좋아 보인다.
if(string != null && string.replaceAll(" ","").isEmpty())
근데 사실 replaceAll()함수와 같이 쓰니까 가독성은 두 코드 전부 좋진 않다.
그냥 공백 문자열을 확인해주는 메소드를 하나 만들어서 사용하는 것이 좋을 것 같다.
public boolean isNullOrEmpty(String input){
if(string != null && string.replaceAll(" ","").isEmpty()) return true;
return false;
}