String type을 다룰 때 사용할 수 있는 여러 함수 중 특정 조건을 이용해 배열로 저장시켜주는 역할을 하는 Split에 대해 알아보자.
- 1. split(String regex);
String test ="213141516171819";
String [] arr = test.split("1");
String regex을 기준으로 문자열을 나누어 배열에 저장한다.
String type의 test에 "213141516171819"라고 선언되어 있다.
이를 배열 arr에 1(String regex)을 기준으로 나누어 각각 배열에 저장하는 기능을 수행한다.
✓ arr 결과값
[2, 3, 4, 5, 6, 7, 8, 9]
- 2. split(String regex, int limit)
String test ="a b c d e f g ";
String [] b = test.split(" ",3);
String [] c = test.split(" ",test.length());
String [] c2 = test.split(" ");
String [] d =test.split(" ", -1);
String regex을 기준으로 문자열을 나누어 int limit의 수만큼 배열에 저장한다.
String type의 test에 "a b c d e f g "라고 선언되어 있다.
배열 b, c, c2, d 각각
1. b는 한 문자 씩("") 배열의 길이(int limit)가 3이 되도록 선언 : int limit 양수
2. c는 한 문자씩 배열의 길이가 test의 길이가 되도록 선언
3. c2는 한 문자씩 int limit이 0 되도록 선언 : int limit 0
3. d는 한 문자씩 int limit이 - 1 되도록 선언 : int limit 음수
1.1 int limit가 양수인 경우 그 수만큼 배열의 크기를 만들어 저장한다. 조건에 맞게 배열에 배치가 되고, 배열의 마지막에는 남은 요소들이 들어가게 된다.
✓ b 결괏값
[a, b, cdefg]
2.1 String값의 크기만큼 배열의 길이를 생성한다.
✓ c 결괏값
[a, b, c, d, e, f, g, ]
3.1 String test의 마지막 문자가 공백일 때 공백을 지우고 배열을 만든다.
✓ c2 결괏값
[a, b, c, d, e, f, g]
4.1 int limit이 음수일 경우 마지막 요소가 빈 문자일 때 그 공백까지 포함하여 배열을 만든다.
✓ d 결괏값
[a, b, c, d, e, f, g, ]
이때 2.1의 결과와 4.1의 결과가 같게 된다. test 문자열 간격이 공백이고 마지막이 공백이 있다.
이를 regex 공백으로 구분하기 때문에
마지막 공백도 구분되어 저장되어 c의 결과 마지막에 빈 요소로 배열에 저장된 것이었다.
String test ="a b c d e f g ";
String [] c = test.split("",test.length());
String [] d =test.split("", -1);
만약 위처럼 공백이 아닌 한 글자 단위("")로 나누게 된다면
✓ c 결괏값
[a, , b, , c, , d, , e, , f, , g, ]
✓ d 결괏값
[a, , b, , c, , d, , e, , f, , g, , ]
이렇게 저장된다.
limit이 음수일 경우 한 글자 단위로 나눌 때 조건에 맞을 때까지 최대한 구분하여 저장하는 반면
limit이 양수일 경우 조건보다 -1회 적용하여 저장하게 된다.
[출처]
https://offbyone.tistory.com/398
'초보 개발자의 스터디룸' 카테고리의 다른 글
[Java] ArrayList - 1(생성) (0) | 2022.11.28 |
---|---|
[Java] Collections Framework(List, Set, Map)이란? (1) | 2022.11.28 |
[2022 전자정부 프레임워크 컨트리뷰션] 전자정부 프레임워크 (0) | 2022.08.06 |
[2022 전자정부 프레임워크 컨트리뷰션] 전자정부 표준프레임워크와 컨트리뷰션 (0) | 2022.07.05 |
[Mac M1] 맥북 한영 전환 Capslock 딜레이 해결 방법 (0) | 2022.06.27 |