백준 1541번 잃어버린 괄호 문제를 풀다가 split()을 사용하는 부분에서 아래와 같이 오류
java.util.regex.PatternSyntaxException: Dangling meta character '+' near index 0+ 가 발생했다.
"+"를 기준으로 잘라서 문자열 배열에 저장하는 부분에서 에러 발생
원인
String[] num = str[i].split("+");
split()은 구분할 기준 문자열을 정규표현식으로 받는다.
-> 예약어로 사용되는 일부 특수문자(?, +, *, (, ), [, ], {, }, \)를 split(), replaceAll() 등을 사용할 때 기준으로 하면 인식할 수 없다.
해결방법
특수기호를 인식할 수 있도록 "+" 대신 "\\+"나 "[+]"로 입력해주어야 한다.
//방법 1
String[] num = str[i].split("[+]");
//방법 2
String[] num = str[i].split("\\+");
'JAVA' 카테고리의 다른 글
[JAVA] 컬렉션 프레임워크 (Collection Framework) (0) | 2024.11.22 |
---|---|
[JAVA] 제네릭(Generic) (0) | 2024.11.22 |
[JAVA(자바)] 인터페이스 (feat. 인터페이스와 추상클래스 비교) (0) | 2023.01.22 |
[JAVA(자바)] 배열 복사, 배열 특정 구간 복사(copyOf, copyOfRange) (0) | 2023.01.21 |
[JAVA(자바)] 추상 클래스(abstract)와 봉인된 클래스(sealed) (0) | 2023.01.20 |
댓글