본문 바로가기
프로그래밍/JAVA, JSP

자바 split으로 "|" 문자 자르기..

by 착살의 숲 2013. 11. 6.
반응형

자바 내장함수 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

 

어찌보면 당연한 결과일지도 모르는데..

나만 몰랐던 것일까..

 

반응형

댓글