Adventure Time - Lady Rainicorn String.split()
본문 바로가기
💻공부/Java ☕️

String.split()

by 강켄트 2022. 10. 9.

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}$ 우편번호 

 

 

'💻공부 > Java ☕️' 카테고리의 다른 글

EOF  (0) 2022.10.18
StringBuilder  (0) 2022.10.15
Stream  (0) 2022.10.02
자바의 인코딩  (0) 2022.10.02
append()  (0) 2022.10.02

댓글