2010-01-16 6 views
-1

저는 자바를 처음 접하기에 조금 모자 랍니다. 특정 단어가 입력 될 때까지 사용자 입력을 받아들이는 프로그램을 작성하려고합니다. 프로그램이 종료 될 때까지 말입니다. 지금까지이 있습니다단어를 입력 할 때까지 문자열 입력

public class Question { 

    private String getInput() { 
     Input in = new Input(); 
     System.out.print("Enter String: "); 
     String line = reader.readLine(); 
    } 

    public void method() { 

     while (!"end".equals(line)) { 
      System.out.println(line); 
      line = reader.readLine(); // read next line 
     } 
    } 

    public static void main(String[] args) { 
     new Question().getInput(); 
    } 
} 

사람이 잘못 갈 수있는 것을 설명 할 수 있습니까?

+0

무엇이 잘못되었는지 우리에게 말해주기 전까지는. – bmargulies

답변

1

이 코드는 컴파일되지 않습니다.

private String getInput() 
{ 
    Input in = new Input(); 
    System.out.print("Enter String: "); 
    String line = reader.readLine(); // reader does not exist 
} 

적어도 게시하기 전에 문제를 확인하고 수정하십시오. 확실히 컴파일러는 당신에게 경고했거나 (또는 ​​경고했을 것입니다) 무엇이 reader인지 알지 못합니다. 아마도이 코드를 웹 사이트에서 복사했지만 모든 코드를 복사하지는 않았습니다. reader 변수를 먼저 정의해야하며 해당 readLine() 메서드에 액세스하려고하면이 변수는 BufferedReader 일 수 있습니다.

는 더 명확 코드 행을 시도 만들려면 : 당신이 그것을 원하는대로 이것은 독자의 인스턴스를

BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

. 그리고 당신은이를 제거 할 수 있습니다

Input in = new Input();

사용하지 않을 때문이다.

+0

요점은 내가 왜 컴파일되지 않을지 이해하지 못합니다. – Penny

+0

하지만 내 대답은 그것을 설명했다. 명확하지 않은 것이 있으면 후속 질문을 할 수 있습니다. – danben

+0

이제 샘플 코드도 제공합니다. – danben

0

해당 줄에서 사용할 수있는 reader이라는 변수를 정의해야하며 문자열을 반환하는 readLine() 메서드가있는 형식이 필요합니다. 당신이 가장 가능성이하고 싶은

BufferReader reader = new BufferReader(new InputStreamReader(System.in)); 

같은 더 자세한 내용을 살펴 here을 가지고있다.

+0

'InputStreamReader'는'readLine()'메소드를 지원하지 않습니다. – danben

+0

@ 단벤, 죄송합니다. 내가 링크를주의 깊게 읽지는 않았다고 생각합니다. P –