반응형
split는 문자열을 나누는 메서드다.
String 문자열 = "가:나:다:가나다"; String[] 나눈배열 = 문자열.split(":"); //나눈배열 : {"가", "나", "다", "가나다"} System.out.println(나눈배열[0]); //결과 : 가 System.out.println(나눈배열[나눈배열.length-1]); //결과 : 가나다
그런데 아래처럼 쓰면 작동을 안 한다.
String 문자열 = "가.나.다.가나다"; String[] 나눈배열 = 문자열.split(".");
이렇게 써야 한다.
String 문자열 = "가.나.다.가나다"; String[] 나눈배열 = 문자열.split("\\.");
그래야 작동한다.
이건 split의 인자로 들어가는 String 토큰이 regex 정규식이기 때문이다. 정규식에서 .은 무작위의 한 글자를 의미한다. 그러면 모든 문자가 토큰이 되기 때문에 배열에 남는 게 없게 되는 것이다.
따라서 이스케이프 문자를 앞에 붙여 줘야 한다. 그런데 String 안에 이스케이프 문자인 \
를 써 주려면 \\
라고 써 줘야 한다. 따라서 \\
라고 쓰는 것이다. 그래서 \\.
이라고 쓰면 정규식 쪽에서는 \.
라고 인식을 하고 실제 .을 찾게 되는 것이다.
아악… 머리아프다. 여튼 기억하라. 기호를 써서 split를 쓸 때 뭔가 작동을 안 하면 \\
을 붙여 보라.
참, 그냥 \라고만 붙여야 하는 것도 있는데, 아래 애들이다.
\b \t \n \f \r \" \' \\
참고하면 될 것이다.
출처 : https://mytory.net/archives/285
반응형
'프로그램 관련 > Java 및 JAVA라이브러리' 카테고리의 다른 글
java 엑셀파일 다운 코딩 (0) | 2019.08.09 |
---|---|
JAVA int 길이 (length ) 구하기 자리수 구하기 (몇자리인지) (2) | 2019.01.03 |
Table 구조 배열 가로 형식 출력(피벗) 알고리즘 (0) | 2018.09.20 |
JAVA 배열 내에 중복값 제거하기/출력하기 (0) | 2018.09.18 |
Array.asList 중복 제거 (0) | 2018.09.18 |