자바 입력시 마지막줄 wrongful 자주 하는 실수 모음에 보면 아래의 내용이 있는데요. 테스트 데이터 마지막에 개행 문자가 존재한다는 보장은 없습니다. 구현과 환경에 따라 이 부분이 문제를 일으키기도 합니다. 자바에서 이부분을 어떻게 처리 하면 되는지 아시는분 혹시 계신가요? 외부 라이브러리에서는 지원하는 것도 있는듯 한데.. 자바JDK 에 있는 System.in이나 Scanner에서는 마지막 개행문자가 없는경우 마지막줄을 읽지 못하는데요.. 혹시 방법이 있다면 답변해 주시면 감사하겠습니다. 9년 전
5개의 댓글이 있습니다. Being public static void main (String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNextLine()) { String line = sc.nextLine(); System.out.println(line); } } 문제없이 잘 작동하는 것 같습니다. System.in 이야 그냥 바이트에 대한 입력스트림이니 마지막 줄애 개행문자가 있건 없건 똑같이 동작할 것 같네요. 9년 전 link wrongful 답변주신 코드도 마지막에 enter를 입력해야만 마지막줄이 화면에 나오게 되는데.. 예제 입력값이 abc 인 경우와 abc\n 인 경우에 abc인 경우는 복사후 붙여 넣기를 한후 enter를 입력해야 될것이고 abc\n의 경우는 그냥 붙여넣기만 해도 답이 나오게 되겠죠.. 이 질문이었는데... 답변주신 내용으로 작성하면 모든 입력을 받을수있다고 가정한다면... 입력을 잘못받아 생긴 문제가 아니라 제가 특수 상황을 처리 하지 못해서 오답이 나오는경우일수도있겠군요... 답변 감사 드립니다. 9년 전 link Being 아, "화면"을 통해 입력하시는 경우는 터미널에서 엔터를 칠 때 내용을 표준입력으로 보내기 때문에 상황이 다릅니다. 채점할 때에는 파일을 표준입력으로 보내기 때문에 문제가 없습니다. 정확히 테스트하고자 하신다면 데이터를 파일에 담아 java MyClass < input.txt 와 같이 해 보시기 바랍니다. 9년 전 link wrongful 답변 감사드립니다. 꾸벅. 9년 전 link Being 네, 덧붙이자면 화면으로 테스트를 해 보고 싶으시면 환경에 따라 Ctrl-D나 Ctrl-Z 등으로 EOF를 보내 보시면 됩니다. 9년 전 link 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
wrongful
자주 하는 실수 모음에 보면 아래의 내용이 있는데요.
테스트 데이터 마지막에 개행 문자가 존재한다는 보장은 없습니다. 구현과 환경에 따라 이 부분이 문제를 일으키기도 합니다.
자바에서 이부분을 어떻게 처리 하면 되는지 아시는분 혹시 계신가요? 외부 라이브러리에서는 지원하는 것도 있는듯 한데.. 자바JDK 에 있는 System.in이나 Scanner에서는 마지막 개행문자가 없는경우 마지막줄을 읽지 못하는데요..
혹시 방법이 있다면 답변해 주시면 감사하겠습니다.
9년 전