2012년 8월 13일 월요일

Java String split

Visual C++ 개발 할때 문자열 자르는 함수를 라이브러리로 항상 대동 하고 다녔던거와는 달리

Java 에서는 String Class 에서 split 함수를 제공한다 쓰는 방법은 아래와 같다.

String strMessage = "Test`One`Two`Three";

String[] sArrMsg = strMessage.split("`");

for(int i=0; i<sArrMsg.length; i++)
{
System.out.println(String.format("Parse 문자열 = %s", sArrMsg[i])); 
}

위와 같이 함수를 제공해줘서 아주 잘 쓰고 있는데 문제가 하나 있다.

특정 특수 문자는 파싱이 되지 않는다는 점이다. 문자열 예시를 아래와 같이 바꾸면

String strMessage = "Test.One.Two.Three";

파싱이 되지 않는다. 파싱을 하려면 split 함수 안에 아래와 같이 넣어 줘야 정상 동작한다.

String[] sArrMsg = strMessage.split("\\.");

위와같은 문자열은 더 있는거 같고요 일단 제가 발견한 문자는 ".", "(", ")" 입니다. 발견되는 데로 업데이트 합니다 ..

쓰시는 분들은 유의 하시면 될거 같습니다 ^^;

유의할점은 만약에 파싱할 문자열이 아래와 같다면

String strMessage = "Test```";

파싱되는 문자열이 4개가 아니라 1이 됩니다. 이것을 방지 하기 위해서는 뒤에 공백 문자열을 넣어줘야 정상 동작 합니다.

String strMessage = "Test``` ";

댓글 없음: