
앞의 A+B문제(1000)는 첫째 줄에 A와 B가 오면 되지만,
이번 A+B문제(2558)는 첫째 줄에 A, 둘째 줄에 B가 오도록 구현해야 한다.


런타임 에러는 처음 본다.
java의 콘솔에서 여러 줄을 입력받는 방법을 서치하여 찾아보았다.
단일 스캐너로 각 라인을 읽을 수 있다.
Scanner.nextLine()으로 값을 받고, String.split() 또는 StringTokenizer로 문자열을 나누는 방식이다.
Scanner.nextLine() Enter을 포함하여 string값을 입력받는 메소드
String.split() split(" ")의 내용에 따라 입력받은 string을 나누는 메소드
StringTokenizer() StringTokenizer 클래스의 생성자 메소드. 사용하기 위해서는 import java.util.StringTokenizer을 해주어야 한다.
import java.util.Arrays;
import java.util.Scanner;
class Main
{
// `Scanner` 클래스를 사용하여 Java에서 여러 줄 입력 읽기
public static void main(String[] args)
{
Scanner scanner = new Scanner(System.in);
while (scanner.hasNextLine())
{
String[] tokens = scanner.nextLine().split("\\s");
System.out.println(Arrays.toString(tokens));
}
scanner.close();
}
}
hasNextLine() 다음에 읽을 값이 있으면 true를 반환하는 boolean 메소드
Arrays.toString(배열주소) 배열을 리스트 형태로 출력해주는 메소드

한 줄 한줄 각각 따로 값이 입력된다.
import java.util.Scanner;
import java.util.List;
import java.util.ArrayList;
class Main
{
// 두 개의 `Scanner` 인스턴스를 사용하여 Java에서 여러 줄 입력을 읽습니다.
public static void main(String[] args)
{
Scanner scanner = new Scanner(System.in);
while (scanner.hasNextLine())
{
List<String> tokens = new ArrayList<>();
Scanner lineScanner = new Scanner(scanner.nextLine());
while (lineScanner.hasNext()) {
tokens.add(lineScanner.next());
}
lineScanner.close();
System.out.println(tokens);
}
scanner.close();
}
}

BufferedReader의 java 클래스
readLine()으로 값을 읽고, String.split() 또는 StringTokenizer로 분할한다.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
class Main
{
// `BufferedReader` 클래스를 사용하여 Java 에서 여러 줄 입력 읽기
public static void main(String[] args)
{
try (InputStreamReader in = new InputStreamReader(System.in);
BufferedReader buffer = new BufferedReader(in))
{
String line;
while ((line = buffer.readLine()) != null)
{
String[] tokens = line.split("\\s");
System.out.println(Arrays.toString(tokens));
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
출처 : https://jhnyang.tistory.com/92
https://www.techiedelight.com/ko/read-multi-line-input-console-java/
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class BufferReaderEx {
public static void main(String[] args) {
try {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(br.readLine());
int a = Integer.parseInt(st.nextToken());
st = new StringTokenizer(br.readLine());
int b = Integer.parseInt(st.nextToken());
bw.write(String.valueOf(a + b));// valueof는 Stringclass의 메소드
br.close();
bw.flush();
bw.close();
}catch (Exception e) {
e.printStackTrace();
}
}
}