본문 바로가기
Develop/Trouble Shooting

Java 에러 - Exception in thread "main" java.util.regex.PatternSyntaxException

by jaeyoungb 2023. 3. 20.

다음과 같이, "+"를 구분자로 split() 메서드를 이용해서 문자열을 분리하려 했다.

 

 

에러 메시지는 다음과 같았다.

 

구글링을 통해 확인해보니,

?, *, +, (, ), [, ], {, } 와 같은 일부 특수 문자를 replace(), replaceAll(), split() 메서드의 구분자나 기준으로 사용할 때 발생하는 에러라고 한다.

 

 

해결방안은

위 특수문자 앞에 역슬래쉬 2개(\\)를 같이 넣어주면 가볍게 해결할 수 있다.

// example
String str = "123+456";
String[] strArr = str.split("\\+");


// 역슬래쉬 = 원화 표시
// strArr = ["123", "456"]

 

++ 위 특수문자 양 옆에 대괄호([])로 감싸줘도 가능하다.

// example
String str = "123+456";
String[] strArr = str.split("[+]");


// strArr = ["123", "456"]