[Java] String .isBlank() vs .isEmpty() 차이 / .equals()

Onam Kwon·2022년 10월 21일
0

Java

목록 보기
3/7

String .isBlank() vs .isEmpty()

  • 자바를 접하면서 여러 특징들을 접하는중이다.
  • 문자열이 비어있나 확인할 때 두개의 메소드가 있는걸 확인했다.

.isBlank()

// Checks if a String is whitespace, empty ("") or null.
StringUtils.isBlank(null)      // true
StringUtils.isBlank("")        // true  
StringUtils.isBlank(" ")       // true  
StringUtils.isBlank("bob")     // false  
StringUtils.isBlank("  bob  ") // false
  • 문자열이 null "" " "(여백)를 포함하고 있으면 true를 반환한다.

.isEmpty()

StringUtils.isEmpty(null)      // true
StringUtils.isEmpty("")        // true  
StringUtils.isEmpty(" ")       // false  
StringUtils.isEmpty("bob")     // false  
StringUtils.isEmpty("  bob  ") // false
  • 문자열이 null ""를 포함하고 있으면 true를 반환한다.

차이점

  • 여백(" ")의 참 거짓 결과가 다름.

references

.equals()

  • 자바에서 문자열에서 == 비교를 하려면 ==연산자를 사용하는게 아닌 .equals() 메소드를 사용해야 한다.
    • == 연산자는 대상의 주소값을 비교하기 때문에 두 대상의 문자열 값이 같아도 두개는 다른 객체이다.
  • 이럴경우 아래와 같은 방법을 사용하면 해결할 수 있다.
String statusCheck = "abc";
if("abc".equals(statusCheck)) {
	// do something here.
}
  • != 비교는 느낌표를 붙혀서 아래와 같이 사용할 수 있다.
String statusCheck = "abc";
if(!"abc".equals(statusCheck)) {
	// do something here.
}

NullPointerException

  • statusCheck.equals("abc")로 안하고 "abc".equals(statusCheck)로 한 이유:
    • 이렇게 할 경우 statusChecknull일 경우 NullPointerException를 피할수 있다.

references

profile
권오남 / Onam Kwon

0개의 댓글