java에서 입력을 받는 방법에는 대표적으로 두가지가 있다.
Scanner 객체를 생성
Scanner in = new Scanner(System.in); //scanner 객체 생성
byte a = in.nextByte(); // byte 형 입력 및 리턴
short b = in.nextShort(); // short 형 입력 및 리턴
int c = in.nextInt(); // int 형 입력 및 리턴
long d = in.nextLong(); // long 형 입력 및 리턴
float e = in.nextFloat(); // float 형 입력 및 리턴
double f = in.nextDouble(); // double 형 입력 및 리턴
boolean g = in.nextBoolean(); // boolean 형 입력 및 리턴
String h = in.next(); // String 형 입력 및 리턴 (공백을 기준으로 한 단어를 읽음)
String i = in.nextLine(); // String 형 입력 및 리턴 (개행을 기준으로 한 줄을 읽음)
BufferedReader
import java.io.*;//
//BufferdeReader로 String s, int a,b,c, 배열 데이터를 입력 받아보자!!
public static void main (String[] args) throws IOException {
//1
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//2 공백단위로 읽으려면 Tokenizer에 넣어서 입력
StringTokenizer st = new StringTokenizer(br.readLine());
//3
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
int c = Integer.parseInt(st.nextToken());
String s= st.readLine();
String array[] = s.split(" ")//공백마다 데이터 끊어서 배열에 넣음
}
1.BufferdeReader객체를 생성하고 그 안에 inputStream객체도 생성
2.readLine이라는 함수로 받으면 한 줄씩 string형태로 받게 됨
따라서 StringTokenizer을 생성하여 받아주어야 함
이때 String이 아닌 다른 타입으로 입력을 받게 되면 형변환을 해주어야 한다.
3. StringTokenizer로 받은 값을 int형태로 parsing해주어야 함
다음으로 예외처리를 꼭 해주어야 한다.
1. readLine을 할 때마다 try&catch문으로 예외처리를 해주기
2.main클래스 옆에 throws IOException을 작성하기(주로 사용하는 방법)
이 방법은 Scanner보다 번거롭지만
입력 데이터가 많다면 시간 단축을 위해 BufferedReader를 사용해 주는 것이 좋다.
'Java' 카테고리의 다른 글
java- IEEE 754 부동 소수점 방식 (0) | 2023.02.02 |
---|---|
자료구조- DFS와 BFS의 탐색과정 차이 (0) | 2022.10.26 |
Java- StringBuilder의 메소드 (1) | 2022.09.26 |
Java - split()/join() 배열<->문자열 변환 (1) | 2022.09.23 |
Java - 많이 쓰는 메소드 정리1 (배열 복사) (0) | 2022.09.23 |