우선 Spilt과 StringTokenizer의 차이점부터 보면 StringTokenizer의 경우 비어있는 데이터는 생략하고 Split은 비어있는 데이터를 null 값으로 간주한다고 합니다.
또한 StringTokenizer는 일반적으로 속도가 더 빠르며 Split은 정교한 작업을 하는데 더 유용하다고 합니다.
두 가지를 보기 전에 먼저 substring을 보겠습니다.
1.substring
String str = "The String class represents character strings.";
str의 문자열이 선언되어 있다고 가정했을 때
System.out.println(str.substring(4, 10));
substring은 java.lang.String에서 제공하고 있는데요.
위의 코드를 출력하면 String이 출력이 됩니다.
해당 문자열을 배열로 봤을 때 4번째 방부터 10번째 방까지 출력해달라는 의미입니다.
2.split
String[] temp = str.split(" ");
for(int i = 0; i < temp.length; i++) {
System.out.println(temp[i]);
}
Split도 java.lang.String에서 제공하고 있습니다.
String[] temp = str.split(" ");
해당 명령문은 String 타입의 배열에 담고 " "을 기준으로 구분할 예정입니다.
for(int i = 0; i < temp.length; i++) {
System.out.println(temp[i]);
}
" "을 고분자로 구분하여 문자열을 나누어 배열에 담고 해당 배열을 출력합니다.
space bar를 기준으로 구분하여 배열에 담았기 때문에 위의 콘솔 창 같은 결과가 나왔겠지요.
3. StringTokenizer
String str02 = "The,String,class,represents,character,strings.";
StringTokenizer st = new StringTokenizer(str02, ",");
while(st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
StringTokenizer를 이용해서 문자열을 구분해보겠습니다.
문자열을 토큰처럼 나눈다는 의미입니다.
StringTokenizer st = new StringTokenizer(str02, ",");
객체를 생성하며 ","를 고분자로 하여 문자열을 구분합니다.
while(st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
구분된 토큰이 있을 경우 while 문이 반복됩니다.
반복문이 반복되면서 st에 저장된 토큰을 출력합니다.
String str03 = "The String,class/represents#character~strings.";
StringTokenizer st02 = new StringTokenizer(str03, " ,/#~");
while(st02.hasMoreTokens()) {
System.out.println(st02.nextToken());
}
위 코드처럼 구분자를 여러 개 설정할 수 있습니다.
'Java 관련 > Java' 카테고리의 다른 글
[Java] 클래스(class) (0) | 2021.11.01 |
---|---|
[Java] java.lang.String api 활용하기 (0) | 2021.10.31 |
[Java] String() & StingBuffer() (0) | 2021.10.29 |
[Java] String pool(스프링 풀) (0) | 2021.10.28 |
[Java] Calendar 클래스를 이용한 달력(calendar) (0) | 2021.10.27 |