22.4.18 [HackerRank]Java End-of-file
🌱 배경지식
EOF
End-of-file. 데이터 소스로부터 더 이상 읽을 수 있는 데이터가 없음을 나타내는 용어. Java에서 아래의 두가지 방식으로 처리할 수 있다.
1) scanner.hasNext()
: 스캐너 객체로 입력값이 들어오는지 여부를 판단하는 함수다. hasNext뒤로 Int, Double, Boolean 등의 자료형을 붙이면 입력값이 그 자료형에 해당할 경우 true 값을 반환하고 아니면 false 값을 반환한다.
Scanner sc = new Scanner(System.in);
while(sc.hasNext()) {
System.out.println(sc.nextLine());
}
2) BufferedReader
: scanner와 달리 EOF를 처리하는 내장함수는 없다. 다음의 예시처럼 처리한다.
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input = "";
while((input = br.readLine()) != null) {
// 이후 로직 전개.
}
Java While문
while (조건문) {
<수행할 문장1>;
<수행할 문장2>;
<수행할 문장3>;
...
}
조건문이 참인 동안 while문의 수행할 문장들을 반복해서 수행한다.
✏️ 해설 및 분석
EOF에 도달할 때 까지 stdin(System.in)에서 알 수 없는 n줄의 입력을 읽는다.
각 줄에는 줄 번호와 공백 하나를,그리고 입력받은 content를 출력한다.
import java.io.*;
import java.util.*;
public class Solution {
public static void main(String[] args) {
/* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */
Scanner sc = new Scanner(System.in); // 새 스캐너 객체를 생성해 입력받는 값(문장)을 받는다.
int i = 1; // 첫번째 줄에서 1부터 넘버링이 시작된다.
while(sc.hasNext()){ // hasNext로 입력값이 들어오는지 여부를 판단해 들어오는 경우를 while문의 조건으로 준다.
System.out.println(i + " " + sc.nextLine()); //문장 앞의 숫자 + 공백 + 입력받은 문자열 전체를 리턴하기 위한 nextLine()함수를 프린트해준다.
i ++; // i는 하나씩 증가해 나간다.
}
}
}
👉 참고
Author And Source
이 문제에 관하여(22.4.18 [HackerRank]Java End-of-file), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@apolontes/22.4.18-HackerRankJava-End-of-file저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)