Java에서 문자열을 원하는 구분자를 사용하여 분리하는 방법으로 StringTokenizer와 String의 메소드 split()를 사용한다.
StringTokenizer
- java.util에 포함되어있는 메소드
- 지정한 한가지 구분자로 문자열을 나눌 수 있다
- 구분자를 생략하면 공백이 기본 구분자
split()
- String 클래스의 메소드로 지정한 구분자로 문자열을 나눠 배열에 저장
- 공백 문자열도 포함
StringTokenizer와 String.split()의 차이
- String.split()은 정규식을 사용하기 때문에 StringTokenizer가 속도 측면에서 성능이 좋다.
- 가변적인 요소가 많은 문자열이나 정확한 분리가 필요할 땐 split() 사용이 유용
=> split()은 다양하게 쪼갤수 있지만 StringTokenizer는 단순한 문자로만 쪼갤 수 있다
정규 표현식이란?
특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식 언어
StringTokenizer 사용법
StringTokenizer 메소드
- nextToken() : 다음 토큰을 리턴한다. 이전토큰은 제거
메소드 | 설명 | 리턴타입 |
nextToken() | 다음 토큰을 리턴한다 이전 토큰은 제거 |
String |
hasMoreTokens() | 리턴할 다음 토큰이 남아있으면 true 리턴할 다음 토큰이 없으면 false |
boolean |
countTokens() | 남아있는 토큰의 개수를 리턴 | int |
String.split() 사용법
예시코드
package 개념;
import java.util.Arrays;
import java.util.StringTokenizer;
public class StringTokenizerStirngsplit {
public static void main(String[] args) {
String str = "kistone:and:kitty";
StringTokenizer st = new StringTokenizer(str,":");
System.out.println("StringToeknizer 예시 1");
while(st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
System.out.println("\nsplit() 예시 1");
String[] sp = str.split(":");
System.out.println(Arrays.toString(sp));
System.out.println("\nsplit() 예시 2 : 원하는 길이 까지만 쪼개기");
String str2 = "1/2/3/4/5";
String[] sp2 = str2.split("/",3);
System.out.println(Arrays.toString(sp2));
System.out.println("\nsplit() 예시 3 : 끝의 구분자는 인식하지 않는다 앞과 중간 구분자는 인식");
String str3 = "/1/2/3/4/5/";
String[] sp3 = str3.split("/");
System.out.println(Arrays.toString(sp3));
System.out.println("\nsplit() 예시 4 : 음수가 들어가면 앞뒤 상관없이 그냥 /을 구분자로 다 쪼갠다");
String str4 = "/1/2/3/4/5/";
String[] sp4 = str4.split("/",-1);
System.out.println(Arrays.toString(sp4));
}
}
/**
* 출력
StringToeknizer 예시 1
kistone
and
kitty
split() 예시 1
[kistone, and, kitty]
split() 예시 2 : 원하는 길이 까지만 쪼개기
[1, 2, 3/4/5]
split() 예시 3 : 끝의 구분자는 인식하지 않는다 앞과 중간 구분자는 인식
[, 1, 2, 3, 4, 5]
split() 예시 4 : 음수가 들어가면 앞뒤 상관없이 그냥 /을 구분자로 다 쪼갠다
[, 1, 2, 3, 4, 5, ]
*/
참고자료
https://ko.wikipedia.org/wiki/%EC%A0%95%EA%B7%9C_%ED%91%9C%ED%98%84%EC%8B%9D
https://docs.oracle.com/javase/8/docs/api/java/util/StringTokenizer.html
https://docs.oracle.com/javase/8/docs/api/java/lang/String.html
'기술면접대비' 카테고리의 다른 글
[JAVA] 클래스/객체/인스턴스 (0) | 2020.08.25 |
---|---|
[JAVA]오버로딩(Overloading) / 오버라이딩(Overriding) (0) | 2020.08.24 |
[Web] HTTP Request Method /GET과 POST 비교 (0) | 2020.08.20 |
[Web] REST, REST API, RESTFUL의 모든것 (0) | 2020.08.19 |
[JAVA] String의 hashCode, ==, equals (0) | 2020.08.14 |