2010-01-16 95 views
-1

我對Java有點新手,所以請耐心等待。 我試圖編寫一個程序,它接受用戶輸入,直到輸入某個單詞,程序終止。 我到目前爲止有這樣的:輸入字符串直到輸入一個單詞

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 2010-01-16 18:30:00

回答

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 2010-01-16 18:17:25

+0

但我在我的回答中解釋了它。如果事情不清楚,你可以問一個後續問題。 – danben 2010-01-16 18:23:08

+0

現在我也提供了示例代碼。 – danben 2010-01-16 18:24:35

0

您需要定義一個名爲reader的變量,該變量在該行可用,並且該類型具有返回字符串的readLine()方法。你最有可能想要做的是一樣的東西

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

看看here瞭解更多詳情。

+0

'InputStreamReader'不支持'readLine()'方法。 – danben 2010-01-16 18:37:02

+0

@danben,哎呀!猜猜我沒有仔細閱讀鏈接:P – 2010-01-16 18:39:50