Notice
Recent Posts
Recent Comments
Link
Seung's Learning Record
[ JAVA ] StringTokenizer()를 사용한 문자열 분리 본문
BufferedReader()에 익숙해지기 위해 여러 입출력 문제를 풀던 중 만난 StringTokenizer().
뭔지 정확히 모르지만 일단 사용하고 문제를 푼 뒤, 위 클래스에 대해 공부해보았다.
StringTokenizer()
BufferedReader()를 사용하여 입력을 읽어들이면 라인 단위로 읽어들일 수 밖에 없다. 이때 필요한것이 바로 문자열을 분리시켜주는 StringTokenizer인 것이다. 이 클래스를 사용하여 특정 문자에 따라 문자열을 나눌 수 있다.
StringTokenizer를 생성하는 방식에는 3가지가 있다.
- StringTokenizer st = new StringTokenizer(문자열); <띄어쓰기 기준으로 분리>
- StringTokenizer st = new StringTokenizer(문자열,구분자); <구분자를 기준으로 분리>
- StringTokenizer st = new StringTokenizer(문자열,구분자,true/false); <구분자도 토큰으로 넣을지(t) 말지(f) 결정>
StringTokenizer 클래스에서 지원하는 메서드 중 가장 자주 사용하는 메서드를 사용한 예시 코드이다.
<문자열 분리>
import java.util.StringTokenizer;
public class ST{
public static void main(String[] args) throws IOException {
String str = "티스토리 주소 :seung2344.tistory.com";
StringTokenizer st = new StringTokenizer(str, ":." , true); //구분자 1개이상 가능
while(st.hasMoreTokens()){
System.out.println(st.nextToken());
System.out.println("total tokens : "+st.countTokens());
}
}
/*
티스토리 주소
total tokens : 6
:
total tokens : 5
seung2344
total tokens : 4
.
total tokens : 3
tistory
total tokens : 2
.
total tokens : 1
com
total tokens : 0
*/
<BufferedReader()를 사용한 배열 입력>
import java.io.*;
import java.util.StringTokenizer;
public class ST{
public static void main(String[] args) throw IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(br.readLine());
int[] arr = new int[10];
for(int i=0 ; i<arr.length ; i++){
arr[i] = Integer.parseInt(st.nextToken());
//bufferedreader는 엔터를 기준으로 문자열을 입력받기때문에 StringTokenizer를 사용하여
//공백을 기준으로 문자열을 나눠 입력시킨다.
}
for(int j=0 ; j<arr.length ; j++){
bw.write(String.valueOf(arr[j]));
//BufferedWriter을 통해 정수 출력을 할려면 String으로 형변환을 해줘야 한다.
bw.write(" "); //공백 출력
bw.flush();
}
bw.newLine();
bw.write("끝");
bw.flush();
bw.close();
}
}
/*
1 2 3 4 5 6 7 8 9 10
끝
*/
'프로그래밍 > JAVA' 카테고리의 다른 글
[ JAVA ] StringBuilder - 문자열 더하기 (0) | 2022.08.25 |
---|---|
[ JAVA ] 배열 정렬 (0) | 2022.08.18 |
[ JAVA ] 배열 (0) | 2022.08.18 |
[ JAVA ] 표준 입출력 (0) | 2022.08.16 |