2013-05-27 112 views
0

好了,讓我想弄清楚如何代碼(而不是真正的修復),我必須用Java來接受來自用戶的連續輸入,直到他們進入一期節目。然後它必須計算用戶輸入到該期間的總字符。Java的連續輸入代碼

import java.io.*; 
class ContinuousInput 
{ 
    public static void main(String[] args) throws IOException 
    { 
    InputStreamReader inStream = new InputStreamReader (System.in); 
    BufferedReader userInput = new BufferedReader (inStream); 
    String inputValues; 
    int numberValue; 
    System.out.println("Welcome to the input calculator!"); 
    System.out.println("Please input anything you wish: "); 

    inputValues = userInput.readLine(); 

    while (inputValues != null && inputValues.indexOf('.')) { 
    inputValues = userInput.readLine(); 
    } 
    numberValue = inputValues.length(); 
    System.out.println("The total number of characters is " + numberValue + "."); 

    System.out.println("Thank you for using the input calculator!"); 
    } 
} 

請不要建議使用掃描儀,我們使用粘在Java SE平臺是SDK 1.4.2_19模型,我們不能對其進行更新。 空括號說明:我想,如果我把空括號,這將允許連續輸入直到週期放入,但顯然這是不是這樣的......

編輯:更新的代碼 當前錯誤:不會在什麼時候結束。被輸入。

+0

該代碼在使用這些'>'字符你的開發IDE複製? – NINCOMPOOP

+0

你可能想使用循環(在/對) – BobTheBuilder

+0

看到這個答案的同類解決方案:http://stackoverflow.com/a/16441949/714965 – Kai

回答

3

你必須與while切換if/else聲明。

樣品:

inputValues = userInput.readLine(); 
while (!".".equals(inputValues) { 
    //do your stuff 
    //..and after done, read the next line of the user input. 
    inputValues = userInput.readLine(); 
} 

注:決不String對象的值與==運營商進行比較。使用equals()方法。

如果你只是想測試,用戶輸入的句子是否包含.符號,你只需要從equals()切換到。這是一個java.lang.String類的內置方法。

樣品:

while (inputValues != null && !inputValues.contains(".")) { 
    //do your stuff 
} 
+0

感謝您的幫助!它的工作原理,但現在我只需要弄清楚如何調試它。如果將代碼放在一行中,它似乎不想停止閱讀(IE:這是一個句子)。我還需要一個可以讀取多行並計算相同內容的模型。 –

+0

查看我更新的答案。 :) –

+0

可悲的是,現在我得到無法解析符號(而(!「」包含(inputValues)))執導的第一報價,說明該法包含(java.lang.String中)。我真的不太瞭解我的Java。 :/ –