[Java] split(".") 이 안되는 이유

2022. 4. 18. 14:20☕️ Java

String[] splitted = "ABC.DEFU".split(".");

// 예상
[ABC, DEFU]

// 실제 
[]

 

suspicious regex expression "." in call to split() 이라는 경고 메시지가 뜬다. 직역하면 "의심스러운 정규 표현식" 이란 말인데, 정규 표현식 자리에 들어간 "." 이 의미가 개발자의 의도와 다르기 때문이다. 

정규 표현식에서 comma (.) 는 임의의 문자열을 의미한다.

정규식에서는 특수문자를 대괄호 [] 로 감싸거나,  \\ 를 앞에 붙여주어야만 한다. 

// wrong
String[] splitted = "ABC.DEFU".split(".");


// right
String[] splitted = "ABC.DEFU".split("\\.");
String[] splitted = "ABC.DEFU".split("[.]");