본문 바로가기
Java/기초

[Java] String .split(".")결과가 공백이 나올 때 해결방법

by EricJeong 2019. 8. 21.

 

 

문자열을 split()을 이용하여 자르고 싶을 때 작동이 잘 안되는 경우가 종종 있습니다.

보통 "."을 이용하여 자를 때 많이 일어나는데

이것은 split(); 메서드에 들어가는 "."이 정규식으로 작동하기 때문입니다.

 

 

그냥 "."을 이용하여 잘랐을 때의 결과 입니다.

 

public class Test {
	public static void main(String[] args) {
		String str = "Hello.Wolrd.Eric!";
		
		System.out.println("자를 문자열 => " + str);
		System.out.println("문자열을 \".\"를 이용하여 잘라 배열로 만듭니다.");
		
		String[] arrStr = str.split(".");
		
		System.out.println();
		System.out.println("====== 결과 ======");
		for(String s : arrStr){
			System.out.print("[" + s + "]\t");
		}
	}
}

 

"."을 이용하여 split한 결과는 공백이 출력됩니다.

 

 

 

해결 방법은 간단합니다.

정규식에서 .을 문자 "."으로 만들 수 있도록 역슬래시("\")를 두개 붙여주면 됩니다.

 

public class Test {
	public static void main(String[] args) {
		String str = "Hello.Wolrd.Eric!";
		
		System.out.println("자를 문자열 => " + str);
		System.out.println("문자열을 \".\"를 이용하여 잘라 배열로 만듭니다.");
		
		String[] arrStr = str.split("\\.");
		
		System.out.println();
		System.out.println("====== 결과 ======");
		for(String s : arrStr){
			System.out.print("[" + s + "]\t");
		}
	}
}

 

 

정상적으로 결과가 출력되는것을 확인할 수 있습니다.

 

 

 

정규식이기 때문에 다음과 같은 형식으로 split하여도 정상 작동이 됩니다.

String[] arrStr = str.split("[.]");

댓글