$$ Regular Expression이 안먹는 경우
문제점: 다음 아래의 문자열을 "$$"구분자로 parsing하여 String 배열 자료구조에 저장하려고 하였다.
String
chkLine = "$${Pst0x12002001}$${CODE}$${FLASH}$${INTERN}";
tokens =
chkLine.split("$$");
|
예상 했던 결과는 tokens String 배열에 {Pst0x12002001},{CODE},{FLASH},{INTERN} 이
담겨 있을 것이라고 생각했다. 하지만 실제 디버깅 한 결과,
$${Pst0x12002001}$${CODE}$${FLASH}$${INTERN}
|
가 나왔다. Split이 먹히지 않았던 것이다.
원인: Regular Expression이 잘못되었기 때문이다. String 클래스에서 인자값으로 받아 처리하는 Regular Expression은
"$$"를 지원을 안했던 것이다.
해결책: "$$" Regular Expression을 사용하여 문자열을 split하려면, chkLine.split("$$"); 대신 chkLine.split("\\$\\$"); 를 사용해야 한다.
적용결과:
{Pst0x12002001}{CODE}{FLASH}{INTERN}
|
Comments
Post a Comment