Programming/Java

입력 클래스 정리 (Scanner, BufferedReader, StringTokenizer)

JeongKyun 2021. 9. 30.
반응형

나는 java에서 보통 입력을 받을려면 Scanner로 사용하는걸로 알고있었다.

 

그렇지만 시간과 메모리에 아주 예민한 알고리즘 풀이에 있어서는 여러 방법들이 있다고한다.

 

첫번째로는 BufferedReader이다.

 

BufferReader는 Scanner보다 더 빠른 퍼포먼스를 제공한다.

 

두번쨰로는 StringTokenizer이며, 해당 클래스는 특정 문자를 기준으로 나눠서 출력할 수 있는 클래스이다.

 

 

=== 기존 Scanner === (12번이나 호출해야함)

1 2 3 4 5 6 7 8 9 10 11 12

// 한줄 입력

for (int i=0;i<12;i++)

{

sc.nextInt();

}

 

=== BufferedReader === (공백을 기준으로 잘라서 바로 배열에 넣을 수 있음.)

1 2 3 4 5 6 7 8 9 10 11 12

// 한줄 입력

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

String[] s = br.readLine().split(" ");

// s[0] = "1";

Integer.parseInt(s[0]) => 1

// s[1] = "2";

// s[2] = "3";

 

=== StringTokenizer === (split과 비슷하게 특정 문자열을 기준으로 짜르지만 split보다 더 시간효율이 좋다.)

String str = "this%%is%%my%%string";

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

while(st.hasMoreTokens())

{

System.out.println(st.nextToken());

}

//== 결과값 ==

//this

//is

//my

//string

댓글

💲 많이 본 글