개발/JAVA
Java String split 또는 replace 할 때 .(Dot, 점) 안되는 현상
신매력
2016. 9. 29. 18:58
내가 split 하려고 했던 문자열이 아래와 같다고 하면,
String text = "aaa.111";
. (dot)로 split을 하려고 했다.
String[] result = text.split(".");
System.out.println(result.length);
결과는 몇일까?
.을 기준으로 aaa와 111로 나눠지기 때문에
2가 나와야 정상이지만,
0이었다.
이유는 .(dot)는 정규식 예약어이기 때문이다.
\n(개행문자)를 제외한 모든 문자를 의미한다.
따라서,
String[] result = text.split(".");
이 문법은 모든 문자를 각각 다 split 하면서
하나씩 다 없어져버린 것이다.
그래서 원하는대로 하기 위해서는
\\.
으로 수행해야한다.
\ <- 이 것 하나도 예약어이기 때문에 두개를 붙인다.
출처 : http://ohgyun.com/4