반응형
1. 문자열을 자르는 메소드 split()
문자열 String 을 특정 문자로 자를때 사용할 수 있는 메소드가 split() 이다.
공백으로 문자열을 자를때, split(" ") 으로 자르면 되지만, 문자열이 끝나고 마지막에 붙는 공백은 얻어지지 않는다.
파라미터로 -1을 추가하는 것의 큰 차이는 문자열이 공백으로 끝날때의 공백을 취득하냐 여부이다.
마지막 공백갯수도 취득해야할 때는 split() 메소드에 파라미터로 -1을 주면 된다.
2. String.split(" ") vs String.split(" ", -1)
public static void main(String[] args) {
/** 공백 1개로 시작하고 끝나는 문자열 */
String str = " 안녕하세요 문자열을 split()메소드로 잘라보겠습니다 ";
// split(" ") 으로 자르는 경우
String[] strings1 = str.split(" ");
System.out.println("===== str.split(\" \") =====");
System.out.println(Arrays.toString(strings1));
System.out.println();
// split(" ", -1) 으로 자르는 경우
System.out.println("===== str.split(\" \", -1) =====");
String[] strings2 = str.split(" ", -1);
System.out.println(Arrays.toString(strings2));
System.out.println();
/** 공백 2개로 시작하고 끝는 문자열 */
String str2 = " 공백2개로 시작하는 문자열을 split()메소드로 잘라보겠습니다 ";
String[] strings3 = str2.split(" ");
System.out.println("===== str.split(\" \") =====");
System.out.println(Arrays.toString(strings3));
System.out.println();
System.out.println("===== str.split(\" \", -1) =====");
String[] strings4 = str2.split(" ", -1);
System.out.println(Arrays.toString(strings4));
}
출력결과
===== str1.split(" ") =====
[, 안녕하세요, , 문자열을, , , split()메소드로, 잘라보겠습니다]
===== str1.split(" ", -1) =====
[, 안녕하세요, , 문자열을, , , split()메소드로, 잘라보겠습니다, ]
===== str2.split(" ") =====
[, , 공백2개로, 시작하는, , 문자열을, , , split()메소드로, 잘라보겠습니다]
===== str2.split(" ", -1) =====
[, , 공백2개로, 시작하는, , 문자열을, , , split()메소드로, 잘라보겠습니다, , ]
- 공백 1개로 시작하고, 공백 1개로 끝나는 문자열
" 안녕하세요 문자열을 split()메소드로 잘라보겠습니다 " - 공백 2개로 시작하고, 공백 2개로 끝나는 문자열
" 공백2개로 시작하는 문자열을 split()메소드로 잘라보겠습니다 "
(1) split(" ") 결과
- 기본적으로 문자열 사이의 공백으로 잘라진다.
- 문자열 사이에 공백이 1개 : split()메소드로, 잘라보겠습니다
- 문자열 사이에 공백이 2개 : 안녕하세요, (공백), 문자열을
- 공백으로 시작하는 경우, 공백의 갯수대로 잘라진다.
- 공백 1개로 시작 : (공백), 안녕하세요
- 공백 2개로 시작 : (공백), (공백), 공백2개로
- 공백으로 끝나는 경우, 무시된다
- 공백 1개로 시작하고, 공백 1개로 끝나는 문자열
["", "안녕하세요", "", "문자열을", "", "", "split()메소드로", "잘라보겠습니다"] - 공백 2개로 시작하고, 공백 2개로 끝나는 문자열
["", "", "공백2개로", "시작하는", "", "문자열을", "", "", "split()메소드로", "잘라보겠습니다"]
- 공백 1개로 시작하고, 공백 1개로 끝나는 문자열
(2) split(" ", -1) 결과
- 기본적으로 문자열 사이의 공백으로 잘라진다.
- 문자열 사이에 공백이 1개 : split()메소드로, 잘라보겠습니다
- 문자열 사이에 공백이 2개 : 안녕하세요, (공백), 문자열을
- 공백으로 시작하는 경우, 공백의 갯수대로 잘라진다.
- 공백 1개로 시작 : (공백), 안녕하세요
- 공백 2개로 시작 : (공백), (공백), 공백2개로
- 공백으로 끝나는 경우, 공백 갯수가 취득된다
- 공백 1개로 시작하고, 공백 1개로 끝나는 문자열
["", "안녕하세요", "", "문자열을", "", "", "split()메소드로", "잘라보겠습니다", ""] - 공백 2개로 시작하고, 공백 2개로 끝나는 문자열
["", "", "공백2개로", "시작하는", "", "문자열을", "", "", "split()메소드로", "잘라보겠습니다", "", ""]
- 공백 1개로 시작하고, 공백 1개로 끝나는 문자열
반응형