티스토리 뷰
출처 : https://mytory.net/archives/285
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 \” \’ \
참고하면 될 것이다.
ps. 세상에는 설명을 잘하는 사람들이 참 많다...
이것때문에 한참을 고민했었는데...
'JAVA' 카테고리의 다른 글
문자열 나눠서 치환하기 (숫자를 요일로) (0) | 2017.07.21 |
---|---|
아이바티스 형이 안맞을 때 나는 오류..... (0) | 2017.07.21 |
숫자오버플로우가 나옵니다.ㅠㅠ (0) | 2017.07.21 |
null 또는 빈문자열 비교 (0) | 2017.07.21 |
java 숫자 null (0) | 2017.07.21 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 아파치
- Lalavel
- 성수뚝떡
- 최고심
- 오라클
- html
- floating button
- Oracle
- Mac
- 힘냉면록
- 조직도관리
- 르프리크
- 터미널
- 성수밥
- 톰캣
- jstree
- 토라식당
- 맥
- 메뉴관리
- server.xml
- 이클립스
- Tomcat
- tree로만들기
- input
- Apach
- SQL
- 정규식
- 위잇딜라이트
- node관리
- Eclipse
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함