본문 바로가기
Java & Spring

Java 문자열 빈 값 vs 공백 vs null 비교

by softserve 2021. 10. 23.
반응형

 

  • null 이란 값이 없는 상태를 말합니다.
  • java는 null을 표현하기 위해 "null" 이라는 키워드를 가지고 있습니다.
  • null은 참조형 변수에만 할당될 수 있습니다.
  • 참조형 변수(reference variable)는 값이 저장된 메모리의 주소를 담고 있는 변수를 말합니다. ex) String, 배열
  • 기본형 변수(primitive variable)는 정수나 문자 등 실제 값이 저장되어 있는 변수를 말합니다 ex) int, char

Java 에서는 문자열에 저장된 값이

 

1. null 일 때

2. 길이가 0인 경우

3. 공백이 포함된 경우

 

를 모두 다르게 취급하고 있습니다.

 

각각에 해당하는지 여부는 다음과 같이 확인할 수 있습니다.

String[] strArr = {null, "", " "};

for(String str: strArr){

	if(str == null) System.out.println("null입니다.");
    
    else if(str == "" || str.isEmpty()) System.out.println("길이가 "+str.length()+"입니다.");
    
    else if(str == " " || str.trim().isEmpty()) System.out.println("공백"+str.length()+"칸입니다.");
}

 

 

* 위 예제에서 사용된 String 클래스의 메소드

length()는 문자열의 길이를 반환해줍니다.

 

isEmpty() 는 문자열이 빈값을 가지고 있는지 여부를 알려줍니다.

 

trim() 은 문자열 '앞' '뒤'의 공백을 제거한 후 다시 반환합니다.

 

 

** 한편, 문자열과 문자열의 비교를 위해서는 equals() 메소드를 사용합니다.

if(str1.equals(str2))
	System.out.println("str1과 str2는 같다");

 

문자열이 참조형 변수이기 때문에 "str1 == str2" 라고 하면 str1이 가리키는 주소와 str2가 가리키는 주소를 비교하게 됩니다.

 

반응형

댓글