728x90
https://www.acmicpc.net/problem/1000
백준 1000번 문제. A값과 B값을 더해주기. Scanner와 BufferedReader를 한 번 이용해볼 생각이다.
사칙연산은 의외로 간단하기 때문에 바로 시작
1. Scanner 이용
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner((System.in));
int a = sc.nextInt();
int b = sc.nextInt();
System.out.println(a + b);
sc.close();
}
}
Scanner로 입력할 수 있게 설정해주고 int에 각각 넣어줄 값을 nextInt();로 설정해주기. 그리고 System을 이용해서 출력!
2. BufferedReader 이용
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();
StringTokenizer st = new StringTokenizer(str," ");
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
System.out.println(a+b);
}
}
BufferedReader를 생성하여 InputStream과 동시에 StringTokenizer를 설정해준다. 이때 " " 공백을 통해서 구간을 나눠줘야함.
문자열로 설정된 st.nextToken()을 Interger.parseInt를 통해 형태를 바꿔줘야한다.
이때 Scanner와 입력하는 차이가 있는데 예를들어 a값을 3 b값을 2라고 했을 경우
Scanner를 사용했다면
3
2
이런식으로 입력을 해야하고
BufferedReader를 사용했다면, 3 2 이렇게 입력해줘야한다. 왜냐하면 " "로 공간을 나눠줬기때문에
만약 일반적인 Scanner처럼 3을 먼저 입력했다면 StringTokenizer에서 오류가 발생할것이다.
[오류메시지 예시]
Exception in thread "main" java.util.NoSuchElementException
at java.base/java.util.StringTokenizer.nextToken(StringTokenizer.java:349)
at Main.main(exam.java:15)
StringTokenzier에서 분리된 문자열을 담고있는 요소가 더 이상 없는데 요소를 반환하려고 발생하는 오류가 발생하게 될 것이다.
728x90
'Algorithm' 카테고리의 다른 글
[Java] 백준 1271번 엄청난 부자2 (0) | 2021.10.25 |
---|---|
[Java] 백준 1330번 두 수 비교하기 (0) | 2021.10.22 |
[Java] 백준 10172번: 개 (0) | 2021.10.01 |
[Java] 백준 10171번: 고양이 (0) | 2021.09.29 |
[Java] 백준 10178번: We love kriii (0) | 2021.09.28 |