StringTokenizer: 컴마로 구분되는 문자열들을 분리 or 특정 문자에 따라 문자열을 나누고 싶을 때

String :문자열을 Tokenizer: 토큰화하다 => 하나의 문자열을 여러 개의 토큰으로 분리

 

IMPORT

import java.util.StringTokenizer;
import java.util.*;

StringTokenizer 생성자

  1. StringTokenizer st = new StringTokenizer(문자열);   //띄어쓰기 기준으로 문자열 분리
  2. StringTokenizer st = new StringTokenizer(문자열, 구분자);   //구분자를 기준으로 문자열 분리
  3. StringTokenizer st = new StringTokenizer(문자열, 구분자, true/false);   //구분자를 기준으로 분리된 문자열 토큰에 포함 안시킬지(default: false), 시킬지(true)

StringTokenizer 메서드

return 값 method명 역할
boolean hasMoreTokens() 남아있는 토큰이 있으면 true를 리턴, 더 이상 토큰이 없으면 false 리턴
boolean hasMoreElements() hasMoreTokens와 동일한데 엘레먼트보다 토큰으로 된 메서드를 주로 씀
String nextToken() 객체에서 다음 토큰을 반환
String nextToken(String delim) delim 기준으로 다음 토큰을 반환
Object nextElement() nextTokens 메서드와 동일하지만 문자열이 아닌 객체를 리턴
int countTokens() 총 토큰의 개수를 리턴

 

구분자가 여러개

StringTokenizer st = new StringTokenizer(str, ".,");

//.와 , 두 개의 문자를 구분자로 사용해서 분리

=> 하나 문자가 아닌, 여러개의 문자를 구분자로 토큰을 만들 수 있다.

 

Split 는 빈 문자열을 토큰으로 인식하지만, StringTokenizer는 인식하지 않는다.

StringTokenizer는 결과값이 문자열, Split 는 결과값이 문자열 배열 

=> StringTokenizer를 이용하면, 전체 토큰을 반복문을 이용해서 출력해야 한다.

StringTokenizer st = new StringTokenizer(str, ".", true);
int i=1;
while(st.hasMoreTokens()){
System.out.println(i++)+st.nextToken());
}

 

readLine(): BufferedReader의  mothod, BufferedReader에서 읽어들인 값을 String으로 저장

만약, 숫자형으로 다시 변환하고 싶다면 Integer.parseInt() 사용

 

integer 나 char를 string으로 변환

String str = String.valueOf(num);

String 을 Char로 변환

Char ch1 = str.CharAt(0); //str의 길이가 1인 경우
Char[] ch2 = str.toCharArray(); //str의 길이가 2 이상

2번 줄의 char array를 출력하여 확인하고자 하면 다음과 같이 변환하여 출력
Arrays.toString(a1.toCharArray())

백준 반복문, 빠른 A+B

import java.util.*;
import java.io.*;
public class Main {
	public static void main(String args[]) throws IOException {
	BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
	BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
	
	int T = Integer.parseInt(br.readLine());
	
	for(int i=0;i<T;i++) {
		StringTokenizer st = new StringTokenizer(br.readLine());
		int a = Integer.parseInt(st.nextToken());
		int b = Integer.parseInt(st.nextToken());
		bw.write((a+b)+"\n");
	}
	bw.flush();
	}
}

+ Recent posts