반복문 A+B -4를 풀 때 언제 종료를 해줘야 할 지 알 수 없어서 고민하던 중 질문 게시판에 나와 같은 고민을 하는 질문글을 보았다.
EOF(End of File)이란?
더 이상 읽을 수 있는 데이터가 없음을 나타내는 용어로 알고리즘 문제를 풀 때는 주로 입력값을 얼마나 받을 지 명시하지 않을 경우 사용한다.
EOF의 사용법
1.Sanner 클래스: hasNext() 사용
=입력된 토큰이 있으면 true, 그렇지 않을 경우 false 반환
Scanner scan = new Scanner(System.in);
while(scan.hasNext()) {
System.out.println(scan.nextLine());
}
while(scan.hasNext()) {
sc.next();
}
2.BufferedReader 클래스 :내장 함수가 없다. StringTokenizer의 경우 문자열을 입력하는 것이 아닌 입력받은 문자열을 가송하는 역할로 EOF를 철리한다고 보기 어렵다.
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input = "";
while((input = br.readLine()) != null) {
// 이후 로직 전개.
}
while((input = br.readLine()) != null && !input.isEmpty()) { ... }
백준: 반복문 A+B -4
isEmpty(): 빈 문자열인지 확인=> 안 쓰면 JAVA에서 오류
package practice;
import java.util.*;
import java.io.*;
public class Main {
public static void main(String args[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String s;
while((s = br.readLine())!=null) {
StringTokenizer st= new StringTokenizer(s);
if(s.isEmpty()) break;
int A = Integer.parseInt(st.nextToken());
int B = Integer.parseInt(st.nextToken());
bw.write((A+B)+"\n");
}
bw.flush();
}
}
'백준 문제 풀기' 카테고리의 다른 글
[단계별로 풀어보기 1단계] 입출력과 사칙연산 (0) | 2023.06.28 |
---|---|
런타임 에러 (NoSuchElement) (반복문 A+B-5)+백준에서 package를 안 지워도 런타임에러가 뜬다... (0) | 2023.06.21 |
StringTokenizer 클래스(백준 반복문, 빠른 A+B) (0) | 2023.06.20 |