
안녕하세요.
오늘은 자바의 문법 에러에서 'Unclosed character class near index 0' 에러에 대해 알아보려고 합니다. 해당 에러는 자바의 split을 사용할 때 발생하는 에러입니다. 정규식 문자 "["를 넣고 split을 실행했을 경우 위의 에러가 발생합니다. 그럼 에러가 난 예제 소스 코드와 해결 방법을 알아보도록 하겠습니다.
1. 'Unclosed character class near index 0'
에러 내용

에러 내용의 마지막 부분에 "["에서 에러가 발생했다고 표시를 해주고 있습니다. 에러 원인은 내용에서 알 수 있듯이 정규식 문자 "["를 사용할 때에는 "]" 닫아주는 정규식 문자를 같이 사용해야 하는데 그렇지 않고 "[" 문자만 넣어서 발생한 듯 합니다.
그럼 에러가 발생한 예제 소스 코드를 보도록 하겠습니다.
예제 소스 코드
package com.demo.system;
import java.util.Arrays;
import java.util.stream.Collectors;
public class TestMain {
public static void main(String[] args) {
splitTest("abcsefg", "[");
}
/**
* split을 이용한 정규식 문자 테스트 method
*/
public static void splitTest (String originData, String regex) {
System.out.println("---------------------------------------------");
System.out.println("* 원본 데이터 : " + originData);
System.out.println("* 정규식 문자 : " + regex);
System.out.println("---------------------------------------------");
String regexData = Arrays.stream(originData.split("")).collect(Collectors.joining(regex));
System.out.println("* 원본 + 정규식 데이터 : " + regexData);
System.out.println("---------------------------------------------");
String [] arr = regexData.split(regex);
int arrLength = arr.length;
System.out.println("* split size : " + arrLength);
System.out.println("---------------------------------------------");
for (int i = 0; i < arrLength; i++) {
System.out.println(arr[i]);
}
}
}
지난번 유사한 문법 에러 예제에서 사용하던 메서드입니다. 간단하게 split을 이용하여 테스트할 수 있는 소스 코드입니다.
- 인자값 1 : split 대상 문자열
- 인자값 2 : split 구분값 (위의 메서드에서는 인자값1과 join 처리를 하고나서 split 처리를 하기 위한 용도)
테스트로는 인자값1에 "abcdefg", 인자값2에 "[" 값을 넣고 메서드를 호출하였습니다.
실행 결과

위에서 설명드린 대로 원본 데이터 사이사이에 정규식 문자 "[" 값이 잘 들어갔습니다.
- "a[b[c[d[e[f[g"
위의 합쳐진 문자열을 기준으로 split("[")을 실행한 결과 위와 같이 에러가 발생하였습니다.
위와 같이 "[" 기준으로 split을 실행해야 하는데 에러가 발생을 한다면 정규식 문자를 일반 문자로 인식할 수 있도록 처리를 해주면 됩니다.
String [] arr = regexData.split("\\" + regex);
"\\" 기준으로 정상 split 처리된 결과

실행 결과는 정상적으로 나왔습니다!
마무리
에러 원인
정규식 문자 "["를 넣고 split을 실행하게 되면 정규식 문자로 인식하기 때문에 "]" 닫아주는 문자가 같이 붙어야 함
해결 방안
split("\\[");
그럼 오늘도 저의 작고 소중한 글을 읽어주셔서 감사합니다.

'Java > Java' 카테고리의 다른 글
| [java] 자바 split(".") 검색하는 방법과 주의사항 알아보기 (0) | 2023.01.19 |
|---|---|
| [java] 자바 문법 에러 'Dangling meta character '' near index 0' 해결하기 (split 에러 이슈) (0) | 2023.01.18 |
| [java] 자바 문법 에러 Unmatched closing ')' 해결하기 (split 에러 처리) (1) | 2023.01.16 |
| [java] 자바 문법 에러 Illegal repetition 해결하기 (split 에러) (0) | 2023.01.15 |
| [java] 자바 문법 에러 Unexpected internal error near index 1 해결하기 (split 에러) (0) | 2023.01.13 |