[JAVA] 자바 문자열 자르기 split(), StringTokenizer 차이 비교
- 언어/Java
- 2020. 5. 14.
자바 문자열 자르기 split(), StringTokenizer 차이점
JAVA에서 문자열을 원하는 구분자로 분리하고 싶을때
split() 과 StringTokenizer 를 사용할 수 있습니다.
split메소드는 인자로 regex(정규표현식)을 사용하기 떄문에
속도측면에서는 StringTokenizer가 빠르다고 볼 수 있습니다.
split() vs StringTokenizer 차이점
구분 | 설명 |
split() | String클래스의 메소드, 지정한 구분자로 문자열을 나눠 배열에 저장. 공백 문자열도 포함. |
StringTokenizer | java.util에 포함되어있는 메소드. 지정한 한가지 구분자로 문자열을 나눌수 있다. 구분자를 생략하면 공백이 기본 구분자. |
StringTokenizer의 생성자입니다.
생성자 | 설명 |
StringTokenizer(String str) | 구획문자(delimiter)를 인자로 받지않는 생성자. |
StringTokenizer(String str, String delim) | 구획문자(delimiter)를 인자로 받는 생성자. |
StringTokenizer(String str, String delilm , boolean retrunDelims) |
구획문자(delimiter)를 인자로 받는 생성자. returnDelims가 true이면 구획문자도 토큰으로 간주한다. |
StringTokenizer의 메소드 입니다.
메소드 | 설명 | 리턴 | |
nextToken() | 다음토큰을 리턴한다. 이전 토큰은 제거한다. | String | |
hasMoreTokens() | 리턴할 다음 토큰이 남아있으면 true, 없으면 false | int | |
countTokens() | 남아있는 토큰의 갯수를 리턴한다. | boolean |
우리는 코딩을 배우는 입장이니 코딩으로 직접 결과를 보는게 이해하는게 빠르죠.
예제샘플을 보겠습니다.
package main.java;
import java.util.StringTokenizer;
public class test2 {
public static void main(String[] args) {
String keyword = "soccer,baseball,basketball"; // 구분자는 콤마(,)
splitTest(keyword); // split 나누기
System.out.println(" ");
System.out.println(" ");
stringTokenizerTest(keyword); //stringTokenizerTest 나누기
}
//stringTokenizerTest 메소드
public static void stringTokenizerTest(String str){
System.out.println("===== stringTokenizerTest() Start =====");
StringTokenizer tokenizer = new StringTokenizer(str,",");
for(int i = 0; tokenizer.hasMoreTokens(); i++){
System.out.println(i + "번쨰 : " + tokenizer.nextToken());
}
System.out.println("===== stringTokenizerTest() End =====");
}
//splitTest 메소드
public static void splitTest(String str){
System.out.println("===== splitTest() Start =====");
String split[] = str.split(",");
int index = 0;
for(String data : split){
System.out.println(index + "번쨰 : " + data);
index++;
}
System.out.println("===== splitTest() End =====");
}
}
1. 데이터 + 구분자 + 데이터 형태일 경우
String keyword = "soccer,baseball,basketball" // 구분자는 콤마(,)
결과 -> 동일합니다.
2. 데이터 + 구분자 + 구분자+ 데이터 형태일 경우(중간에 데이터가 없는경우)
String keyword = "soccer,baseball,,basketball" // 구분자는 콤마(,)
결과 -> split()은 공백문자열도 포함하여 데이터가 나뉘어졌습니다.
3. 데이터 + 구분자 + 데이터 + 구분자 형태일 경우(구분자가 마지막에 있는경우)
String keyword = "soccer,baseball,basketball," // 구분자는 콤마(,)
결과 -> 마지막 구분자는 무시로 동작합니다.
split() 과 StringTokenizer 의 차이점에 대해서 알아보았습니다.
상황에 맞게 알맞게 사용하세요!
'언어 > Java' 카테고리의 다른 글
[JAVA] 자바 오버로딩과 오버라이딩 개념 완벽정리 (0) | 2020.05.16 |
---|---|
[JAVA] 자바 다중반복문, for문 한번에 탈출하기 (0) | 2020.05.14 |
[JAVA] 자바 정규식으로 휴대폰번호/전화번호 자르기 (0) | 2020.05.11 |
[JAVA] 자바 배열 ArrayList 중복제거 모든방법 (0) | 2020.05.09 |
[JAVA] 자바 문자를 숫자로 변환하기 모든형변환 예제포함 (0) | 2020.05.08 |