split이란?
String의 기본 메서드이며, 구분자를 기준으로 문자열을 잘라 배열로 리턴한다.
public String[] split(String regex)
public String[] split(String regex, int limit)
//regex : 정규표현식(regex)으로 문자열 패턴을 받고, 그 패턴과 일치하는 문자열 기준으로 컷컷
//limit : 문자열을 나눌 최대 개수, 만약 5이면 리턴되는 배열의 길이는 5이하
split()의 사용방법 - 공백 단위로 문자 자르기
String str = "My name is Kent";
String[] result = str.split(" "); //공백 단위로 컷컷
String[] result2 = str.split(" ", 2); //2개 만큼 공백 단위로 컷컷
String[] result3 = str.split(" ", 3); //3개 만큼 공백 단위로 컷컷
System.out.println(Arrays.toString(result));
System.out.println(Arrays.toString(result2));
System.out.println(Arrays.toString(result3));
결과
[My, name, is, Kent]
[My, name is Kent]
[My, name, is Kent]
split()의 사용방법 - 개행문자 단위로 문자 자르기
String str = "My\n" + "name\n" + "is Kent";
String[] result = str.split("\n"); //개행문자 단위로 컷컷
System.out.println(Arrays.toString(result));
결과
[My, name, is Kent]
split()의 사용방법 - 정규표현식 사용해서 문자 자르기
String str = "My name isKent";
String[] result = str.split("is"); //일반 문자 기준으로 컷
String[] result2 = str.split("\\bis\\b"); //정규표현식 기준으로 컷
System.out.println(Arrays.toString(result));
System.out.println(Arrays.toString(result2));
결과
[My name , Kent]
[My name isKent]
*정규표현식(Regular Expression)
특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 언어
정규표현식은 텍스트 편집기나 스크립트 언어에서 문자열의 검색과 치환을 위해 지원한다.
정규표현식 문법
^ | 문자열의 시작 |
$ | 문자열의 끝 |
. | 임의의 한 문자 |
* | 문자가 0번 이상 발생 |
+ | 문자가 1번 이상 발생 |
? | 문자가 0번 혹은 1번 발생 |
[] | 문자의 집합 범위를 나타냄 [0-9] : 숫자 0~9 [a-z] : 알파벳 a~z 앞에 ^가 붙으면 not을 의미 |
{} | 횟수 또는 범위를 의미 |
() | 소괄호 안의 문자를 하나늬 문자로 인식 |
| | or 조건 |
\ | 확장 문자의 시작 |
\A | 입력의 시작부분 |
\b | 단어의 경계 |
\B | 단어가 아닌 것의 경계 |
\d | [0-9]와 동일(숫자 0~9) |
\D | 숫자를 제외한 모든 문자 |
\G | 이전 매치의 끝 |
\s | 공백 문자 |
\S | 공백 문자가 아닌 나머지 문자 |
\w | 알파벳이나 숫자 |
\W | 알파벳이나 숫자를 제외한 문자 |
\z | 입력의 끝 |
\Z | 공백문자가 아닌 나머지 문자 |
자주 사용하는 정규표현식
^[0-9]*$ | 숫자 |
^[a-zA-Z]*$ | 영문자 |
^[가-힣]*$ | 한글 |
\\w+@\\w+\\.\\w+(\\.\\w+)? | 이메일 주소 |
^\d{2, 3}-\d{3, 4}-\d{4}$ | 전화번호 |
^01(?:0|1|[6-9])-(?:\d{3}|\d{4})-\d{4}$ | 핸드폰 번호 |
\d{6}\-[1-4]\d{6} | 주민등록 번호 |
^\d{3}-d{2}$ | 우편번호 |
댓글