본문 바로가기
개발 공부 기록하기/- Kotlin & Java

[Java] 문자열 나누기 특수문자에 대해

by soulduse 2016. 5. 10.
반응형

split을 사용하여 특수문자를 구분자로 String 데이터를 나눌때 


나누어지지 않는 문제점이 있었다.

public class StringSplitExam {

public static void main(String[] args) {
String data = "사과!@#$%^!@#$%^파인애플!@#$%^망고!@#$%^수박";
String delimiter = "!@#$%^";

String[] dataArr = data.split(delimiter);

for(int i=0; i<dataArr.length; i++)
System.out.println(dataArr[i]);
}
}


위의 소스를 실행하니 



위와 같이 나누어지지 않는 것이다.


하나하나 디버깅 해본결과 


특수문자 중에 split에 곧바로 적용되지않는 문자열이 있었다


위의 예제코드중서는 "&" , "^" 값이 문제의 원인이었는데, 아래와 같이 변경하여 해결 하였다.


String delimiter = "!@#\\$%\\^";


이외에도 "." , "*" 등등 많은 문자들이 바로 적용이 안되는 것을 발견 하였다.


결론은 안되는 문자열 앞에 \\를 붙이자







반응형