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 = "!@#\\$%\\^";
이외에도 "." , "*" 등등 많은 문자들이 바로 적용이 안되는 것을 발견 하였다.
결론은 안되는 문자열 앞에 \\를 붙이자
반응형
'개발 공부 기록하기 > - Kotlin & Java' 카테고리의 다른 글
지뢰찾기 알고리즘 구현 (0) | 2017.06.16 |
---|---|
스레드 동기화 synchronized에 관해서 (1) | 2016.07.05 |
[Java] 날짜 비교하기 & 요일의 날짜 얻기 (1) | 2016.04.06 |
[Java-lib] Object Mapper에 대해서 (0) | 2016.03.08 |
Callable과 Thread (0) | 2016.02.04 |