일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 이탈리아
- html
- 이클립스
- 문자열
- input
- vscode
- table
- Maven
- date
- 자바스크립트
- javascript
- Files
- Eclipse
- 테이블
- CSS
- string
- IntelliJ
- Visual Studio Code
- list
- windows
- json
- Java
- 배열
- Array
- ArrayList
- 자바
- Button
- js
- 인텔리제이
- CMD
- Today
- Total
어제 오늘 내일
[Java] String(문자열) 빈 값 체크하기 (null, 공백) 본문
문자열(String)이 null 또는 빈 공백인지 체크하는 방법을 소개합니다.
1. isEmpty() - Java 6 이상
isEmpty()
코드
public class StringEmptyCheck {
public static void main(String[] args) {
String str1 = null;
String str2 = "";
String str3 = " ";
System.out.println("str1 : " + isStringEmpty(str1)); // true
System.out.println("str2 : " + isStringEmpty(str2)); // true
System.out.println("str3 : " + isStringEmpty(str3)); // false
}
static boolean isStringEmpty(String str) {
return str == null || str.isEmpty();
}
}
결과
str1 : true str2 : true str3 : false |
str == null || str.isEmpty();
먼저 문자열이 null인지 체크합니다.
그리고, java.lang.String 클래스의 isEmpty() 메소드를 호출하여
문자열의 길이가 0인지 체크합니다.
(isEmpty() 메소드는 Java 6 이후부터 사용할 수 있습니다.)
위 예제를 보면,
isEmpty() 메소드는 문자열의 길이를 체크해서 빈문자열인지 판단하기 때문에
문자열에 공백이 있을 경우에는 isEmpty() 메소드는 false를 리턴합니다.
trim().isEmpty()
코드
공백이 있는 문자열도 빈문자열로 체크하게 하기 위해서,
isEmpty() 메소드를 호출하기 전에 trim() 메소드를 호출해 줍니다.
trim() 메소드는 문자열의 앞뒤 공백을 제거해 주는 메소드입니다.
[Java] 문자열 앞뒤 공백 제거하기 (trim() vs strip() 차이)
public class StringEmptyCheck {
public static void main(String[] args) {
String str1 = null;
String str2 = "";
String str3 = " ";
System.out.println("str1 : " + isStringEmpty(str1)); // true
System.out.println("str2 : " + isStringEmpty(str2)); // true
System.out.println("str3 : " + isStringEmpty(str3)); // true
}
static boolean isStringEmpty(String str) {
return str == null || str.trim().isEmpty();
}
}
결과
str1 : true str2 : true str3 : true |
str == null || str.trim().isEmpty();
위 코드에서는 isEmpty() 메소드를 호출하기 전에,
trim() 메소드를 호출하여 문자열의 앞뒤 공백을 제거하였습니다.
공백이 있는 문자열도, 공백으로 체크되어 true를 리턴하는 것을 확인할 수 있습니다.
2. length() - Java 5 이하
lengh() 체크
코드
public class StringEmptyCheck {
public static void main(String[] args) {
String str1 = null;
String str2 = "";
String str3 = " ";
System.out.println("str1 : " + isStringEmpty(str1)); // true
System.out.println("str2 : " + isStringEmpty(str2)); // true
System.out.println("str3 : " + isStringEmpty(str3)); // false
}
static boolean isStringEmpty(String str) {
return str == null || str.length() == 0;
}
}
결과
str1 : true str2 : true str3 : false |
str == null || str.length() == 0;
Java 5 이하에서는 isEmpty() 메소드를 사용할 수 없습니다.
따라서, 위와 같이 문자열의 길이를 length() 메소드를 이용하여 직접 체크해 주어야 합니다.
여기서도, isEmpty() 예제와 마찬가지로
공백이 있는 문자열은 길이가 0이 아니므로, 빈 문자열로 체크되지 않습니다.
trim().length() 체크
코드
public class StringEmptyCheck {
public static void main(String[] args) {
String str1 = null;
String str2 = "";
String str3 = " ";
System.out.println("str1 : " + isStringEmpty(str1)); // true
System.out.println("str2 : " + isStringEmpty(str2)); // true
System.out.println("str3 : " + isStringEmpty(str3)); // true
}
static boolean isStringEmpty(String str) {
return str == null || str.trim().length() == 0;
}
}
결과
str1 : true str2 : true str3 : true |
str == null || str.trim().length() == 0;
isEmpty() 메소드 예제와 마찬가지로
공백만으로 이루어진 문자열도 빈 문자열로 체크해 주기 위해서
문자열의 길이를 체크하기 전에
trim() 메소드를 이용하여, 문자열 앞뒤의 공백을 제거해 주었습니다.
3. isBlank() - 공백 체크 (Java 11 이상)
코드
public class StringEmptyCheck {
public static void main(String[] args) {
String str1 = null;
String str2 = "";
String str3 = " ";
System.out.println("str1 : " + isStringEmpty(str1)); // true
System.out.println("str2 : " + isStringEmpty(str2)); // true
System.out.println("str3 : " + isStringEmpty(str3)); // true
}
static boolean isStringEmpty(String str) {
return str == null || str.isBlank();
}
}
결과
str1 : true str2 : true str3 : true |
str == null || str.isBlank();
Java 11이상에서는 isBlank() 메소드를 사용할 수 있습니다.
isBlank() 메소드는 빈 문자열이거나, 공백만으로 이루어진 문자열인 경우 true를 리턴합니다.
isBlank() 메소드를 사용하면, 앞의 예제처럼 trim() 메소드를 호출해 주지 않아도 됩니다.
Java 버전별로 빈 문자열 체크하는 방법을 알아보았습니다.
'IT > Java' 카테고리의 다른 글
[Java] 문자열 연속된 공백 하나로 치환하기 (0) | 2021.04.25 |
---|---|
[Java] 문자열에서 공백 제거하기 (0) | 2021.04.25 |
[Java] 10진수 <-> 2진수, 8진수, 16진수로 변환하기 (0) | 2021.04.24 |
[Java] 문자열 앞뒤 공백 제거하기 (trim() vs strip() 차이) (1) | 2021.04.21 |
[Java] String을 int로, int를 String으로 변환하기 (문자열 숫자 변환) (0) | 2021.04.21 |