$$ 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

Popular posts from this blog

exception in thread main java.lang.unsupportedclassversionerror unsupported major.minor version 52.0

java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver