Java/문자열

[Java]StringBuilder 비어 있는지 확인하는 방법

DevStory 2022. 6. 23.

StringBuilder 비어 있는지 확인하는 방법

이번 포스팅은 Java에서 StringBuilder가 비어 있는지 확인하는 방법을 소개합니다.


length() 메서드

StringBuilder 클래스에는 문자 수를 반환하는 length() 메서드가 존재합니다. length() 메서드를 사용하여 StringBuilder가 비어 있는지 쉽게 확인할 수 있습니다.

 

length() 메서드의 반환 값이 0이면 StringBuilder가 비어 있습니다.

 

다음 예제는 StringBuilder의 length() 메서드 사용 방법을 보여줍니다.

public class Main {
  public static void main(String args[]) {
    StringBuilder sb1 = new StringBuilder("Hello");
    StringBuilder sb2 = new StringBuilder();

    if(sb1.length() == 0) {
        System.out.println("sb1 object is Empty");
    } else {
        System.out.println("sb1 object is Not-Empty");
    }

    if(sb2.length() == 0) {
        System.out.println("sb2 object is Empty");
    } else {
        System.out.println("sb2 object is Not-Empty");
    }
  }
}

실행 결과

sb1 object is Not-Empty
sb2 object is Empty

isEmpty() 메서드

또 다른 방법으로 String 클래스의 isEmpty() 메서드를 사용하여 StringBuilder가 비어 있는지 확인할 수 있습니다. String 클래스의 isEmpty() 메서드를 사용하기 위해 다음 예제처럼 toString() 메서드를 사용하여 String으로 변환합니다.

public class Main {
  public static void main(String args[]) {
    StringBuilder sb1 = new StringBuilder("Hello");
    StringBuilder sb2 = new StringBuilder();

    if(sb1.toString().isEmpty()) {
        System.out.println("sb1 object is Empty");
    } else {
        System.out.println("sb1 object is Not-Empty");
    }

    if(sb2.toString().isEmpty()) {
        System.out.println("sb2 object is Empty");
    } else {
        System.out.println("sb2 object is Not-Empty");
    }
  }
}

실행 결과

sb1 object is Not-Empty
sb2 object is Empty

null로 초기화

비어 있는 StringBuilder는 객체는 존재하지만, 문자가 없는 경우를 말합니다. 하지만, null로 초기화하면 힙 메모리에 StringBuilder 객체가 없다는 것을 의미합니다.

 

위에서 소개한 length(), isEmpty() 메서드를 사용하여 null로 초기화된 StringBuilder를 체크하면 NullPointerException 예외가 발생합니다.

public class Main {
  public static void main(String args[]) {
    // StringBuilder 객체를 null로 초기화합니다.
    StringBuilder sb = null;

    // NullPointerException 예외가 발생합니다.
    // isEmpty() 메서드도 동일한 예외가 발생합니다.
    if(sb.length() == 0) {
        System.out.println("sb object is Empty");
    } else {
        System.out.println("sb object is Not-Empty");
    }
  }
}

따라서, StringBuilder가 비어 있는지 확인하기 위해서는 null을 반드시 확인해야 합니다.

 

다음 예제는 null 체크와 StringBuilder가 비어 있는지 확인하는 방법을 보여줍니다.

public class Main {
  public static void main(String args[]) {
    StringBuilder sb1 = null;
    StringBuilder sb2 = null;

    if(sb1 == null || sb1.length() == 0) {
        System.out.println("sb1 object is Empty");
    } else {
        System.out.println("sb1 object is Not-Empty");
    }

    if(sb2 == null || sb2.toString().isEmpty()) {
        System.out.println("sb2 object is Empty");
    } else {
        System.out.println("sb2 object is Not-Empty");
    }
  }
}

실행 결과

sb1 object is Empty
sb2 object is Empty

정리

  • StringBuilder가 비어 있는지 확인하는 방법으로 StringBuilder 클래스의 length() 메서드와 String 클래스의 isEmpty() 메서드를 사용합니다.
  • StringBuilder를 null로 초기화할 수 있으므로 null인지 체크할 필요가 있습니다.
반응형

댓글