개발/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