그대로 출력하기 (11718) 풀이

2023. 6. 22. 13:36BaekJoon/문자열

문제내용

사용자에게 문자열을 입력받아 그대로 출력하는 문제이다. (끝은 EOF인 것 같다.)


풀이

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Main {

	public static void main(String[] args) {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		
		try {
			String input = null;
			while((input = br.readLine()) != null){
				bw.write(input);
				bw.newLine();
			}
			bw.flush();
			bw.close();
		} catch (Exception e) {
			System.exit(1);
		}
	}

}

사용자에게 문자열을 입력받기 위해 BufferedReader를 사용해 입력받고 while문을 통해 받은 값이 null값이면 종료하고 null값이 아닐 경우는 출력하기위해 BufferedWriter를 사용해 출력한다.

EOF 입력시 while문을 종료하고 버퍼를 비우고 자원을 반납한다.

만일 처리 중 예외가 발생하면 JVM을 비정상적으로 종료하는 System.exit(1)을 사용했다.


겪었던 문제

처음에는 input을 ""로 초기화하고 while문 조건을 input != null로 해서 아래에서 input 변수에 읽은 문자열을 넣어줬다.

이렇게 했을 때는 EOF입력시 출력하지 않고 멈추는 문제가 있었다. 그렇게 했을경우 입력받은 문자가 널값이여도 while문이 한번 더 돌게 되는 문제가 생긴다. 그렇기에 풀이처럼 조건식에 바로 초기화 및 비교를 통해 확인해야한다.

'BaekJoon > 문자열' 카테고리의 다른 글

다이얼 (5622) 풀이  (0) 2023.06.20
상수 (2908) 풀이  (0) 2023.06.20
단어의 개수 (1152) 풀이  (0) 2023.06.20
문자열 반복 (2675) 풀이  (0) 2023.06.16
알파벳 찾기 (10809) 풀이  (0) 2023.06.16