Language/Java

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

The Neo 2022. 11. 1. 13:12

자바(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

 

반응형