2016-02-20 103 views
0

我的目標是要求用戶在循環中輸入一串字符串,當它們輸入「stop」時,循環會打破並使用逗號打印所有這些字符串在每個單詞的結尾。例如,如果用戶輸入「第一」,「第二」,「第三」和「第四」,則程序將打印以下:在帶有循環的列表中存儲字符串,然後打印列表

第一,第二,第三,第四

public static void main(String[] args) 
{ 
    Scanner kb = new Scanner(System.in); 
    int i; 
    String s; 
    String[] listOfStrings = new String[1000]; 
    String last = ""; 
    System.out.println("Please enter some Strings: "); 
    for (i = 1; i>0; i++) { 
     listOfStrings[i] = kb.next(); 
     last = listOfStrings[i] + ","; 
     if (listOfStrings[i].equalsIgnoreCase("stop")) { 

      break; 
     } 
    } 
     System.out.print(last); 

有一個問題,因爲它總是打印最後一個字,沒有別的。任何幫助將不勝感激。

+0

根據你的代碼要打印的最後一個。您將需要在listOfStrings中打印每個字符串。 – stjepano

回答

2

我會用一個ArrayList

Scanner sc = new Scanner(System.in); 
List<String> list = new ArrayList<String>(); 

while (sc.hasNext()) { 
    String s = sc.next(); 
    if (s.equalsIgnoreCase("stop")) { 
     break; 
    } else { 
     list.add(s); 
    } 
} 

for (int i = 0; i < list.size(); i++) { 
    System.out.println(list.get(i) + ","); 
} 

如果你想在一個樣樣在行,你可以這樣做:

Scanner sc = new Scanner(System.in); 
String line = ""; 

while (sc.hasNext()) { 
    String s = sc.next(); 
    if (s.equalsIgnoreCase("stop")) { 
     break; 
    } else { 
     line += s + ", "; 
    } 
} 

System.out.println(line.substring(0, line.length()-2)); 
+0

我正在使用NetBeans 8.1並出於某種原因「列表 list = new ArrayList ();」不起作用。 –

+0

您需要將它們導入到項目中,如果我沒有記錯,netbeans會顯示紅色驚歎號,您可以將鼠標懸停在其上,然後單擊自動解決 – stjepano

+0

您需要導入它:'import java.util中。*;' –