공부 자료/자바[JAVA]

[JAVA] 문자열 구분 split (구분자 여러개/특수기호 등)

희희웃는청바지 2023. 8. 19. 16:44

문자열에서 구분자를 지정하여 문자열을 분할하고 싶은 경우 split을 사용

 

String[] split(String regex) : 인자로 주어진 정규식과 매치되는 문자열을 구분자로 분할

String[p] split(String regex, int limit) : 인자로 주어진 정규식과 매치되는 문자열을 구분자로 분할하되, 두 번째 인자로 정규식 적용 횟수 제한이 가능

 

 

1. 하나의 문자(구분자)로 구분하는 경우 (공백 혹은 띄어쓰기 포함)

String str = "appleSbananaSorange";

// S를 기준으로 구분 - 출력: [apple, banana, orange]
String[] arr = str.split("S");

 

 

2. 정규식 메타문자를 구분자로 구분하는 경우

String str = "apple?banana?orange";

// ?를 기준으로 구분 - 출력 : [apple, banana, orange]
String[] arr = str.split("\\?");

* 정규식 메타문자(정규표현식) : ([{\^-=$|]})?*+.

>> 메타문자를 사용하여 구분자의 조건을 정할 수 있음

ex) [x]+ : x문자를 하나로 보며 x바로 앞에 문자가 하나 이상인 경우

2022.10.22 - [공부 자료/기타] - [기타] 정규표현식 (계속 새로운 정규표현식 업데이트 예정)

 

 

 

3. 구분자가 한 개가 아닌 여러개로 구분하는 경우

String str = "appleSbananaAAorange";

// S와 AA가 구분자인 경우 - 출력: [apple, banana, orange]
String[] arr = str.split("S|AA");

 

 

4. 분자의 문자 길이가 1이 아닌 경우

String str = "apple;banana;,orange";

// ;,인 경우만 구분 - 출력 : [apple;banana, orange] >> 2개로 구분
String[] arr = str.split(;,);

// ;와,모두 구분 - 출력 : [apple, banana, orange] >> 3개로 구분
String[] arr = str.split([;,]);