Java/기초
[Java] String .split(".")결과가 공백이 나올 때 해결방법
EricJeong
2019. 8. 21. 09:35
문자열을 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("[.]");