2011-05-05 3 views
6

학교 과제를하려고하는데 입력을 처리하는 방법을 모르겠습니다. Java에서 명령 줄 입력으로 문자열 목록 (복수 줄)

https://docs.google.com/viewer?a=v&pid=explorer&chrome=true&srcid=0B1DkmkmuB-leNDVmMDU0MDgtYmQzNC00OTdkLTgxMDEtZTkxZWQyYjM4OTI1&hl=en

내가 할당 요청 모든 작업을 수행하는 방법에 대한 일반적인 생각을 가지고,하지만 난 입력을 처리하는 방법을 확실 해요 : 나는 할당에 컨텍스트 아래 링크를 제공하고 있습니다.

샘플 입력된다 :

트리 1 :의 출력을 제공

A0
0
A00
ab000


잘못된!
트리 2 :
높이 : -1
경로 길이 : 0
완성 : 예
postorder :
나무 3 :
높이 : 0
경로 길이 : 전체 0
: 예
postorder : a
트리 4 :
높이 : 1
경로 길이 : 1
,210 전체 : 예
postorder : 나는 자바와 함께이 작업을 수행하려는

바. 내 질문은 입력 파일에서 파이핑하지 않을 때 Windows cmd.exe 줄에 샘플과 같은 여러 입력 줄을 입력하는 방법입니다. Enter 키를 누르는 것은 새 행을 작성하는 대신 한 행의 입력으로 프로그램을 실행하기 때.입니다. 또한 할당이 자동으로 표시되기 때문에 입력을 대화 형으로 할 수 없으므로 언제 읽는 것을 중지해야하는지 어떻게 알 수 있습니까?

감사합니다. 할당에서

+1

할당에 대한 링크를 볼 수 없습니다 ... – cMinor

+0

미안 아 public으로 설정하는 것을 잊었다 . 이제는 효과가있다. – Jigglypuff

+1

+1 잘 쓰여진 특정 질문. 에 오신 것을 환영합니다. –

답변

2

:

당신이 입력 은 한 줄에 하나의 문자열을 나타내는 스트림에 표준 입력에서 올 것이다 가정 할 수있다. 실제로, 입력은 에서 파이프됩니다. 출력을 표준 출력으로 보내야합니다. 샘플 입력 및 출력 파일은 입니다.

그냥 System.in을 읽고 System.out에 씁니다. 입력이 표준 입력으로 파이프되기 때문에 입력 파일의 끝에서 EOF를 얻습니다.

CMD를 창을 통해 상호 작용

는 (Windows의 경우) EOF를 나타 내기 위해 Ctrl 키-Z를 사용하거나 시스템을 사용할 수있는 경우 Linux 시스템에서, Ctrl-D를

+0

답변 해 주셔서 감사합니다. 또한 EOL을 나타낼 수있는 방법이 있습니까, 그래서 CMD 창을 통해 여러 줄의 샘플 입력과 같은 입력을 전달할 수 있습니까? – Jigglypuff

+0

EOL은 단지 ENTER 키입니다. –

1

를 사용합니다.in이면 System.in 스트림에서 읽는 InputStreamReader를 사용할 수 있습니다. 그런 다음 BufferedReader를 사용하여 readLine() 메서드를 사용하여 각 행을 가져옵니다. 예를 들어,이 코드를 보면 :

InputStreamReader input = new InputStreamReader(System.in) 
BufferedReader reader = new BufferedReader(input); 
while (reader.readLine()) { 
//Your code here. It will finish when the reader finds an EOL. 
} 
1

이 코드는 아무 문제없이 작동합니다 -

Scanner sc = new Scanner(System.in); 
String bitstring=""; 
while(sc.hasNextLine()){ //until no other inputs to proceed    
    bitstring=sc.nextLine();//save it to the bitstring 
//proceed with your other codes 
}