이 글에서는 자바(Java)에서 문자열이 비어 있거나 null인지 확인하는 방법을 알아봅니다. 문자열(String)은 하나 이상의 문자를 포함하고 큰따옴표(" ")로 묶여 있는 데이터 타입입니다.
null 문자열과 빈 문자열의 차이
본격적인 예제에 앞서 두 개념의 차이를 짚고 넘어가겠습니다.
- null 문자열: 문자열 객체 자체가 존재하지 않는 상태로, 어떤 값도 참조하지 않습니다.
- 빈(empty) 문자열: 문자열 객체는 존재하지만 그 안에 아무 문자도 들어 있지 않은 상태입니다.
아래는 동작 과정을 보여주는 예시입니다.
입력값이 다음과 같다고 가정할 때
Input string: null
원하는 출력 결과는 다음과 같습니다.
The string is a null string
알고리즘
Step 1 - START Step 2 - Declare a string namely input_string. Step 3 - Define the values. Step 4 - Using an if-loop, compute input_string == null. If true, the string is null, else the string is not null. Step 5 - Display the result Step 6 - Stop
즉, 먼저 문자열 변수를 선언하고 값을 정의한 뒤, if 조건문으로 input_string == null 여부를 검사합니다. 조건이 참이면 해당 문자열은 null이며, 거짓이라면 isEmpty() 메서드로 빈 문자열인지 추가로 확인할 수 있습니다.
예제 1: main 메서드에서 직접 처리하기
첫 번째 방식은 모든 연산을 하나의 main 메서드 안에서 함께 처리하는 절차적 접근 방식입니다.
public class Demo {
public static void main(String[] args) {
String input_string = null;
System.out.println("The string is defined as: " +input_string);
if (input_string == null) {
System.out.println("
The string is a null string");
}
else if(input_string.isEmpty()){
System.out.println("
The string is an empty string");
} else {
System.out.println("
The string is neither empty nor null string");
}
}
}출력 결과
The string is defined as: null The string is a null string
위 코드에서는 먼저 == null 비교로 null 여부를 확인한 후, null이 아니라면 isEmpty() 메서드를 호출해 빈 문자열인지 판별합니다. 이 순서가 중요한 이유는, null인 문자열에 대해 isEmpty()를 호출하면 NullPointerException이 발생하기 때문입니다.
예제 2: 객체 지향 방식으로 함수 분리하기
두 번째 방식은 검사 로직을 별도의 메서드로 캡슐화하여 객체 지향 프로그래밍(OOP) 스타일로 작성한 것입니다. 코드의 재사용성과 가독성이 향상됩니다.
public class Demo {
static void isNullEmpty(String input_string) {
if (input_string == null) {
System.out.println("
The string is a null string");
}
else if(input_string.isEmpty()){
System.out.println("
The string is an empty string");
} else {
System.out.println("
The string is neither empty nor null string");
}
}
public static void main(String[] args) {
String input_string = null;
System.out.println("The string is defined as: " +input_string);
isNullEmpty(input_string);
}
}출력 결과
The string is defined as: null The string is a null string
마무리
지금까지 자바에서 문자열이 null인지 빈 문자열인지 확인하는 두 가지 방법을 살펴보았습니다. 핵심은 == null 비교를 먼저 수행한 뒤 isEmpty() 메서드를 사용하는 것입니다. 실무에서는 이러한 검사 로직을 별도의 유틸리티 메서드로 분리하거나, Apache Commons Lang의 StringUtils.isEmpty() 같은 라이브러리를 활용하면 더욱 안전하고 간결하게 처리할 수 있습니다.