BufferedReader, StringTokenizer 는 문자열로 활용하기 위하여 사용되며 Scanner를 사용하는 것보다 빠르다.
BufferedReader
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] s = br.readLine().split(" ");
// 1 2 3 4 5 6 7 8 9 10 11 12 한줄로 입력
// Integer.parseInt(s[0]) => 1 s[0] = 1
StringTokenizer
- BufferedReader는 잘라서 배열과 같이 인덱스를 사용하여 접근하여 사용한다.
- StringTokenizer는 공백이 있다면 뒤에 문자열이 공백 자리를 땡겨 채우도록 한다.
- StringTokenizer가 BufferedReader보다 빠르게 사용될 수 있다.
- 문자열을 자르게 위해 split을 사용할땐, split은 정규식을 기반으로 자르는 로직으로서 내부는 복잡하다. 그에 비해 StringTokenizer의 nextToken()메소드는 단순히 공백 자리를 땡겨 채우는 것이다. 그렇기 때문에 속도 차이가 날 수 밖에 없다.
- 정규식이나 인덱스 접근과 같은 처리가 필요없다면 StringTokenizer를 사용하는 것이 효율적이다.
BufferedReader br = new BufferedReader(new InputStreamReader(System.in);
StringTokenizer st = new StringTokenizer(br.readLine());
// AB CDD EFFF GH 입력
st.nextToken() // AB
st.nextToken() // CDD
st.nextToken() // EFFF
st.nextToken() // GH
String str = "this%%is%%my%%string";
StringTokenizer st = new StringTokenizer(str,"%%");
while(st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
// this is my string
반응형
'프로그래밍 > Java' 카테고리의 다른 글
[Java] Thread를 이용하여 MultiChatting 프로그램 작성하기 (0) | 2022.02.17 |
---|---|
[Java] HashMap 사용법 (0) | 2022.02.10 |
[Java] HashSet과 TreeSet 사용법 (0) | 2022.02.10 |
[Java] ArrayList 사용법 (0) | 2022.02.10 |
[Java] 자바의 Collections (List, Set, Map)의 용도와 예제 (0) | 2022.02.10 |