\t Regular Expression이 안먹는 경우


문제점: 다음 아래의 문자열의 탭(\t)이 들어간 모든 공백을 제거하려고 하였다.
String chkLine = "$${Pst0x12002001}          $${CODE}          $${FLASH}          $${INTERN}";
chkLine = chkLine.trim();
예상 했던 결과는 chkLine 문자열이 $${Pst0x12002001}$${}$${CODE}$${FLASH}$${INTERN} 형태로 나올 것이라고 생각했다.
하지만 실제 디버깅 한 결과,
$${Pst0x12002001}          $${CODE}          $${FLASH}          $${INTERN}
가 나왔다. Trim()이 먹히지 않았던 것이다.

원인: \t 문자가 포함되어 있는 문자열의 경우, trim()이 안먹힌다. 따라서 trim() 대신에 replaceAll()을 사용하여, 탭 문자를 다른 문자로 치환을 해줘야 한다.
해결책: chkLine.trim()  대신 chkLine.replaceAll("\\s", ""); 을 사용하면 된다. 여기서"\\s"는 빈 공백을 찾아주는 Regular Expression이다.

적용결과:
$${Pst0x12002001}$${CODE}$${FLASH}$${INTERN}






Comments

Popular posts from this blog

[Java] Install Eclipse IDE and run HelloWorld java app

ORA-28000: the account is locked solution

[Java] Install JDK and configure Environment variable