자바 내장함수 split으로 문자열을 자르다 보면 "|" 문자를 기준으로 자를경우가 생기기도 한다.
"/" 또는 "," 등을 많이 사용하지만 for문 깊숙히 들어가다보면 또는 문자열에 많은 특수문자들이 포함되어 기준이 애매모호해질경우 "|"를 사용하기도 한다.
하지만 "|"로 자를경우 다른 문자로 자를경우와 결과물은 달라진다.
ex)
String str = "aaa|bbb|ccc";
String[] result = str.split("|");
for(int i=0; i<result.length; i++){
System.out.println(i+"= "+result[i]);
}
=>
0=
1= a
2= a
3= a
4= |
5= b
6= b
7= b
8= |
9= c
10= c
11= c
결과는 엉뚱해진다.
이것땜에 한참을 구글링을 해본결과 "|"는 boolean과 같은 결과를 리턴한단다.
OR 조건에 걸리는 것이다.
해결방법은 "\\|" 로 자르는것이다.
ex)
String str = "aaa|bbb|ccc";
String[] result = str.split("\\|");
for(int i=0; i<result.length; i++){
System.out.println(i+"= "+result[i]);
}
ex2)
String str = "aaa||bbb||ccc";
String[] result = str.split(\\|\\|);
for(int i=0; i<result.length; i++){
System.out.println(i+"= "+result[i]);
}
=>
0= aaa
1= bbb
2= ccc
어찌보면 당연한 결과일지도 모르는데..
나만 몰랐던 것일까..
'프로그래밍 > JAVA, JSP' 카테고리의 다른 글
자바스크립트 replaceAll (0) | 2013.11.12 |
---|---|
자바(JAVA) SimpleDateFormat을 이용한 날짜 계산 (0) | 2013.11.12 |
자바(JAVA) 캘린더 클래스를 이용한 날짜 계산 (0) | 2013.11.12 |
자바스크립트 selectBox value 값 가져오기 (2) | 2013.11.11 |
JSP 테이블 헤더(제목) 부분 고정 (0) | 2013.11.11 |
댓글