☆ 참고한 블로그
대표적인 입력방법 중 scanner 가 가장 기초이고 그다음 BufferedReader
BufferedReader 의 경우 문자열을 받는 대표적인 방법은 readLine() 과 read() 이다.
둘의 차이는 readLine() 은 한 행을 읽어오고, read() 는 한 문자만 읽어온다.
대부분 readLine() 을 쓴다.
문자열 분리 방법
- StringTokenizer 클래스를 이용하여 분리해주는 방법 ( 성능면에서 좋음)
- split() 을 이용하는 방법
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine(); // 한 행을 읽어온다.
// 문자열 분리방법 (split()도 있으나 성능면은 StringTokenizer 가 좋다
StringTokenizer st = new StringTokenizer(str," "); // StringTokenizer("문자열",구분자)
// 구분 된 변수 차례로 꺼내서 int로 형변환
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
System.out.println(a+b);
}
}
백준 3003 에 적용
킹, 퀸, 룩, 비숍, 나이트, 폰
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine()," ");
int king = Integer.parseInt(st.nextToken());
int queen = Integer.parseInt(st.nextToken());
int look = Integer.parseInt(st.nextToken());
int bishop = Integer.parseInt(st.nextToken());
int night = Integer.parseInt(st.nextToken());
int pone = Integer.parseInt(st.nextToken());
System.out.printf("%d %d %d %d %d %d",1-king, 1-queen, 2-look, 2-bishop, 2-night, 8-pone);
}
}
BufferedReader 와 scanner 를 비교했을때 BufferedReader가 더 빠르다.
반응형
LIST
'공부' 카테고리의 다른 글
[백준] 2단계 | 조건문 1~7 (2) | 2023.01.28 |
---|---|
[백준] 1단계 | 입출력과 사칙연산 10~14 (0) | 2023.01.26 |
[백준] 1단계 | 입출력과 사칙연산 1~9 (0) | 2023.01.20 |
어노테이션 | @Controller, @RequestMapping, @ModelAttribute | Command 객체란? (0) | 2023.01.17 |
정합성 문제 | DB의 격리수준 | 스프링부트의 트랜잭션 (0) | 2022.11.07 |