Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

자바(Java)에서 문자열이 비어 있는지 또는 null인지 확인하는 방법

이 글에서는 자바(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() 같은 라이브러리를 활용하면 더욱 안전하고 간결하게 처리할 수 있습니다.