두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
입력은 여러 개의 테스트 케이스로 이루어져 있다.
각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(sc.hasNextInt()) {
int A = sc.nextInt();
int B = sc.nextInt();
System.out.println(A+B);
}
}
}
기본 Scanner을 이용한 방식이다.
hasNextInt()
을 통해 정수가 입력 시 true를 반환하고 그렇지 않은 경우 false를 반환한다.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
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;
StringTokenizer st;
StringBuilder sb = new StringBuilder();
while((str = br.readLine()) != null) {
st = new StringTokenizer(br.nextLine(), " ");
int A = Integer.parseInt(st.nextToken());
int B = Integer.parseInt(st.nextToken());
sb.append(A+B).append("\n");
}
System.out.println(sb);
}
}
BufferedReader를 이용한 방식이다.
str = br.readLine() != null
값이 있을 때 while문이 실행시킨다.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
Stringbuilder br = new StringBuilder();
String str;
while ( (str = br.readLine()) != null) {
int A = str.charAt(0) - 48;
int B = str.charAt(2) - 48;
sb.appen(A+B).append("\n");
}
System.out.println(sb);
}
}
문제를 보면 0 < A,B < 10
라고 나와 있다.
한자릿수 정수만 입력하면 되니 때문에 객체생성을 안하고 더욱 쉽고 빠른 charAt()
방식을 사용할 수 있다.
charAt()
은 해당 문자의 아스키코드 값을 반환하기 때문에 우리가 알고 있는 정수 형태로 반환해줘야 한다.
str.charAt(0) - 48;
처럼 -48 또는 -0을 해줘야 한다.