본문 바로가기
JAVA

Java 문자열 빈 값 체크 4가지 방법 (null, 공백)

by 코딩이라구 2022. 12. 13.

자바(Java)에서 문자열 객체가 비어있는지 확인하는 4가지 방법에 대하여 작성해보도록 하겠습니다. 문자열 객체가 비었는지 확인 시 null과 공백 부분에서 실수하는 부분이 있는데, 이로 인한 java.lang.NullPointerException 오류가 발생할 수 있습니다. java.lang.NullPointerException 오류가 무엇인지 그리고 어떤 방식으로 문자열의 빈 값을 체크하는지 알아보도록 하겠습니다.


java.lang.NullPointerException 오류

Null 값 체크에 대해 알아보기 전에 java.lang.NullPointerException 오류에 대하여 알아보겠습니다. 데이터 값을 다룰 때 NullPointerException 오류를 쉽게 접할 수 있습니다. NullPointerException는 Null 값으로 인하여 발생하는 Runtime Exception으로, 보통 객체 값이 null이거나 초기화가 되어있지 않은 인스턴스를 사용하려고 할 때 발생하는 오류입니다.

 

java.lang.NullPointerException 오류가 발생하는 원인

  1. null 객체에서 메서드를 호출하는 경우
  2. null 객체의 필드에 접근하거나 값을 변경하는 경우
  3. null의 길이를 배열처럼 취급하는 경우
  4. null을 Throw 하는 경우
  5. null을 통해 동기화할 경우

NullPointerException 오류를 피하기 위해서는 Null 체크가 필요합니다.


Java 문자열 객체가 비었는지 확인하는 방법 (null, 공백)

 

isEmpty() 메서드

문자열이 비어있는지 확인하는 메서드로 빈 문자열의 경우 True를 반환하고, 문자열이 포함되어 있는 경우 False를 반환합니다. 객체가 null인 경우 NullPointerException이 발생합니다.

 

// JAVA String.isEmpty() 메서드 예제
String strNull = null;		// null 문자열
String strEmpty = "";		// 빈 문자열
String strSpace = " ";		// 공백 문자열

boolean bRet = false;

if(strEmpty.isEmpty()) {
	bRet = true;			
}
System.out.println("문자열 strEmpty, isEmpty() 체크 : " + bRet);

bRet = false;
if(strSpace.isEmpty()) {
	bRet = true;			
}
System.out.println("문자열 strSpace, isEmpty() 체크 : " + bRet);

bRet = false;			
if(strNull.isEmpty()) {
	bRet = true;			
}
System.out.println("문자열 strNull, isEmpty() 체크 : " + bRet);

// 결과
문자열 strEmpty, isEmpty() 체크 : true
문자열 strSpace, isEmpty() 체크 : false
Error - NullPointerException 발생

"".equals(String) 메서드

문자열 비교 함수로 빈 값과 비교하여 현재 문자열이 비었는지 확인할 수 있습니다. 빈 값과 문자열 객체의 값이 같다면 True를 반환하고, 다른 문자열을 포함하고 있다면 False를 반환합니다. 객체가 Null인 경우 NullPointerException이 발생합니다.

 

// JAVA "".equals(String) 메서드 예제
String strNull = null;		// null 문자열
String strEmpty = "";		// 빈 문자열
String strSpace = " ";		// 공백 문자열

boolean bRet = false;

if("".equals(strNull)) {
	bRet = true;			
}	
System.out.println("문자열 strNull, \"\".equals() 체크 : " + bRet);

bRet = false;
if("".equals(strEmpty)) {
	bRet = true;			
}
System.out.println("문자열 strEmpty, \"\".equals() 체크 : " + bRet);

bRet = false;
if("".equals(strSpace)) {
	bRet = true;			
}
System.out.println("문자열 strSpace, \"\".equals() 체크 : " + bRet);

// 결과
문자열 strNull, "".equals() 체크 : false
문자열 strEmpty, "".equals() 체크 : true
문자열 strSpace, "".equals() 체크 : false

isBlank() 메서드

문자열이 비어있는지 확인하는 메서드로 공백을 무시하고 확인할 수 있습니다. 빈 문자열 또는 공백으로만 이루어진 경우 True를 반환하고, 문자열이 포함되어 있는 경우 False를 반환합니다. 객체가 Null인 경우 NullPointerException이 발생합니다.

 

// JAVA String.isBlank() 메서드 예제
String strNull = null;		// null 문자열
String strEmpty = "";		// 빈 문자열
String strSpace = " ";		// 공백 문자열

boolean bRet = false;

if (strEmpty.isBlank()) {
	bRet = true;
}
System.out.println("문자열 strEmpty, isBlank() 체크 : " + bRet);

bRet = false;
if (strSpace.isBlank()) {
	bRet = true;
}
System.out.println("문자열 strSpace, isBlank() 체크 : " + bRet);

bRet = false;
if (strNull.isBlank()) {
	bRet = true;
}
System.out.println("문자열 strNull, isBlank() 체크 : " + bRet);

// 결과
문자열 strEmpty, isBlank() 체크 : false
문자열 strSpace, isBlank() 체크 : true
Error - NullPointerException 발생

== null 비교 연산자

비교 연산자를 사용하여 문자열 객체가 null값과 같은지 확인하며 문자열 객체가 null인 경우 True를 반환하고, null이 아닌 경우 False를 반환합니다.'==null'의 경우 문자열 객체에 빈 값("")으로 이루어져 있는 경우에는 null로 인식하지 못합니다.

 

// JAVA 문자열 연산자를 이용한 null 체크 '==null'
String strNull = null;
String strEmpty = "";

boolean bRet = false;

if(strNull == null) {
	bRet = true;			
}
System.out.println("문자열 strNull, ==Null 체크 : " + bRet);

bRet = false;		
if(strEmpty == null) {
	bRet = true;
}
System.out.println("문자열 strEmpty, ==Null 체크 : " + bRet);

// 결과
strNull, ==Null 체크 : true
strNull, ==Null 체크 : false

 

이상으로 자바(Java)에서 문자열의 빈 값(null, 공백)을 체크하는 방법과 NullPointerException이 발생하는 원인에 대하여 알아보았습니다.

댓글