자바(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 오류가 발생하는 원인
- null 객체에서 메서드를 호출하는 경우
- null 객체의 필드에 접근하거나 값을 변경하는 경우
- null의 길이를 배열처럼 취급하는 경우
- null을 Throw 하는 경우
- 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이 발생하는 원인에 대하여 알아보았습니다.
'JAVA' 카테고리의 다른 글
Java 멀티스레드(Multi Thread) 동기화(Synchronized) 설명 (0) | 2022.12.14 |
---|---|
Java 문자열(String) 비교 다양한 사용 방법 (0) | 2022.12.13 |
Java Trim(문자열 공백 제거) 사용법 (LTrim, RTrim 구현) (0) | 2022.12.13 |
JAVA ArrayList 사용 방법 정리 (0) | 2022.12.08 |
JAVA ArrayList.Clear() 사용법 (0) | 2022.12.08 |
댓글