[Java] 자바 isEmpty() 사용법 및 주의점

    자바(Java)에서는 스트링(String) 형태의 변수의 경우 값이 비었는지 체크하기 위해서 isEmpty라는 메소드를 지원합니다. 이 값은 언제 사용을 하면 좋은지 그리고 어떤 부분에 대해서 조심을 하는게 좋은지 알아보도록 하겠습니다.

     

    자바(Java) isEmpty() 메소드 사용법 및 주의점 메인 이미지
    [Java] 자바 isEmpty() 사용법 및 주의점


    isEmpty

    isEmpty() 메소드는 문자열이 빈 값이면 true, 비어있지 않으면 false를 리턴하는 메소드입니다. 아래의 예제를 보면서 이해를 해보도록 하겠습니다.

     

    값이 비어있을 경우

     String test = "";
     System.out.println(test.isEmpty());
     
     // true

     

    값이 있을 경우

    String test = "111";
    System.out.println(test.isEmpty());
    
    // false

     

    위와 같이  test라는 String 문자열 변수는 값이 없을 경우 isEmpty 메소드를 실행하면 true가 떨어지지만, 변수에 값을 넣는 경우 false가 리턴되는 것을 확인할 수 있습니다. 

     

    결국 isEmpty()라는 메소드는 아래와 같은 기능과 동일합니다.

    String test = "";
    String test2 = "111";
            
    System.out.println(test.length() == 0);
    // true
    
    System.out.println(test2.length() == 0);
    // false

    즉 isEmpty()는 length() == 0을 메소드로 만든 것을 알 수 있는 것이죠.

     

    그리고 isEmpty()를 사용하실 때 주의해야 될 점이 있는데요. 바로 아래와 같습니다.

     

     

    isEmpty() 주의점

    Null 발생 여부

    String test = null;
    System.out.println(test.isEmpty());

    우선 위와 같이 값에 null이 들어갈 경우, isEmpty를 실행할 때 어떻게 될까요? 바로 아래와 같이 Null 에러가 떨어지게 됩니다.

    Exception in thread "main" java.lang.NullPointerException

     

    String으로 선언한 test 변수 역시 객체이기 때문에 null 값이 들어가게 되면, isEmpty()의 메소드는 실행할 수 없습니다. 이건 isEmpty() 뿐만 아니라 length(), trim()등과 같이 String에서 사용하는 모든 메소드는 모두 에러가 떨어지니 값을 체크해야 하는 용도로 사용할 경우 Null 발생 가능성이 있을 경우 아래와 같이 사용해주는 것을 권합니다.

     

    String test = null;
    if(test != null && test.isEmpty()) {
        System.out.println(test);
    }

    위와 같이 안전하게 isEmpty 앞에 null 체크를 먼저 해주시기 바랍니다.

     

    공백만 있을 경우

    두번째 문제는 공백만 있을 경우 값이 비어있지 않는가 생각할 수 있다는 것입니다.

     

    String test = " ";
    System.out.println(test.isEmpty());
    
    // false

     

    하지만 공백값도 문자열로 인정을 하기 때문에, 위의 예제는 false 값이 떨어지게 됩니다. Java 11 버전에는 isBlank() 라는 메소드가 추가되었는데요. 이 메소드를 사용하게 되면, 공백을 모두 제거하고 체크하기 때문에 위의 경우 isBlank는 true가 떨어지게 됩니다.

     

    isEmpty로 isBlank 역할을 수행하려면 아래와 같이 trim() 메소드를 추가로 호출 한 후 사용하시면 됩니다.

     

    String test = " ";
    System.out.println(test.trim().isEmpty());
    
    // true

     

    연관 포스팅

     

    [Java] 자바에서 제곱과 루트(제곱근) 계산 방법

    제곱과 루트(제곱근)을 구하는 방법은 수많은 언어(Language) 프로그램들이 내장 라이브러리들로 제공이 됩니다. 마찬가지로 자바 역시 제곱과 루트를 구하는 방법을 제공해주고 있습니다. Math 클

    needneo.tistory.com

     

     

    [Java] 접속한 서버 IP 확인 및 InetAddress 클래스 이해하기

    내 서버의 아이피(IP)를 몰라서 코딩을 하는 경우는 없겠지만, 간혹 IP를 기반으로 프로그램을 다르게 하는 경우가 있습니다. 이럴 때 사용하는 자바 클래스로 InetAddress가 있는데 이를 통해 내가

    needneo.tistory.com

     

     

    [Java] 파일 생성, 읽기 및 캐릭터셋(UTF-8) 설정

    자바로 파일을 생성하는 방법은 다양하게 많지만 그 중 가장 범용적이고, 성능도 뛰어난 방법을 소개해보고자 한다. 테스트를 위한 String 생성 public static void main(String args[]) throws Exception { List..

    needneo.tistory.com

     

    반응형

    댓글

    Designed by JB FACTORY