728x90
속도 비교
Scanner <BufferedReader <StringTokenizer
Scanner | BufferedReader | StringTokenizer |
- 다양한 기능을 지원해서 무거움 | - 데이터를 라인 단위로 읽기 위해 사용 - 잘라서 배열과 같이 인덱스로 접근하여 사용 |
- 구분자를 기반으로 토큰을 분리하기 위한 도구 - 문자열을 파싱하고 조각으로 나눌때 사용 - 문자열의 공백 자리를 땡겨 채운다(nextToken()) - 정규식,인덱스 접근 처리가 필요없다면 효율적(split은 정규식을 기반으로 자르는 로직으로 내부가 복잡) |
입력
1. Scanner
import java.util.Scanner;
Scanner sc = new Scanner(System.in);
2. BufferedReader
import java.io.*;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int[] input = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
3. StringTokenizer
import java.io.*;
import java.util.StringTokenizer;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
LinkedList<Integer> list = new LinkedList<>();
while(st.hasMoreTokens()){ // hasMoreTokens(): 리턴할 다음 토큰이 있으면 true, 없으면 false
list.offer(new Integer(st.nextToken())); // nextToken(): 다음 토큰 리턴, 이전 토큰 제거
}
// countTokens(): 토큰의 갯수를 리턴
출력
1. System.out.println
System.out.println("hi");
2. BufferedWriter
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
bw.write("data");
bw.flush(); // 스트림을 닫지 않은 상태에서 바이트를 내보냄
bw.close(); // 스트림을 닫음과 동시에 바이트를 내보냄
728x90
'IT > Java' 카테고리의 다른 글
[Java] String과 char의 ==와 equals 비교 차이 (0) | 2023.10.24 |
---|---|
[Java] 정렬 재정의하기(클래스에서 or 함수에서) (0) | 2023.08.21 |
[Java] br.readLine()을 int[]말고 Integer[]로 받는법 (0) | 2022.12.16 |
[Java] 인터페이스의 장점 (0) | 2022.08.04 |
[Java] String 클래스의 메서드 (0) | 2022.06.28 |