본문 바로가기
백준 문제풀이/Java

[백준] 11718번 그대로 출력하기

by isfp_yykkng 2024. 3. 20.

[백준] 11718번 그대로 출력하기 - 자바

문제

해설

방법1) scanner 이용

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while(sc.hasNextLine()){
            String str = sc.nextLine();
            System.out.println(str);
        }
        sc.close();
    }
}

 

스캐너에 hasNextLine() 을 이용하여 다음 입력값이 있다면 while문으로 무한 반복한다. ⭐

 

방법2) BufferReader 이용

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
	public static void main(String[] args) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String str; //문자열 변수 선언
		while((str=br.readLine())!=null) { //buffer에 들어온게 null이 아니면
			System.out.println(str);
		}
		br.close();
	}
}

 

while문의 조건에 "문자열이 null이 아니라면" 이라는 조건을 전제로 무한 반복한다.

 

추가 방법) StringBuilder 사용 (InteliJ의 경우)

InteliJ에서는 위 방법으로 해도 안 끝나고 계속 진행되기 때문에 StringBuilder로 입력값들을 저장하고 한번에 출력한다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        while(true) {
            String str = br.readLine(); //문자열 변수 선언
            if(str == null || str.isEmpty()){ //buffer에 들어온게 null이 아니면
                break;
            }
            sb.append(str).append("\n");
        }
        br.close();
        System.out.println(sb);
    }
}