해결하셨을 수도 있지만 혹시나 해서 답변 드립니다.
이렇게 입력 데이터에 종료 조건이 없는 문제들은 대부분 종료조건으로 EOF(End Of Files)가 사용됩니다.
EOF란 입출력(io)에서 파일이나 문자열의 종료를 의미하는 값으로 C에서는 -1, 자바 등에서는 null이 됩니다.
(이클립스에서 입력받을 때 콘솔창에 Ctrl+z를 입력하시면 EOF값이 들어갑니다)
그런데 여기서 입력방법에 문제가 생깁니다.
Scanner는 사용은 편리하나, 띄어쓰기나 개행문자(엔터)를 만나면 서로 다른 글자로 인식을 하게 됩니다.
ex) Online Judge -> Online(문자열 1), Judge(문자열 2)
따라서 이 문제에서는 띄어쓰기 등을 무시하고 한 줄을 통째로 입력 받을 수 있는 BufferedReader를 사용하셔야 됩니다.
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
ex) Online Judge -> Online Judge(문자열 1)
아래 사진을 보면 BufferedReader를 이용해서 값을 입력받을 때 EOF이면 null을 리턴함을 알 수 있습니다.
이제 이를 이용해 종료 조건(EOF)이 들어오기 전 까지 문자열을 입력 & 출력하는 식을 짜면 아래와 같습니다
(보기 쉬우시라고 그냥 System.out.println을 사용하였으나, 출력 할 때도 BufferedWriter를 이용하시는 것을 권장합니다.)
minov 7년 전 1