5

以前に質問をしてから、コードを少し編集しましたが、読み込んだときにコードが停止しません。

public class Done {

    public static void main(String[] args){

       Scanner kb = new Scanner(System.in);
       ArrayList<String> sal = new ArrayList<String>();
       int count = 0;
       while (true){
             sal.add(kb.next());
             if (sal.equals("done"))
                 break;
             count++;
      }
      display(sal);
      displayb(sal);
    }

    public static void display(ArrayList<String> sal){

       for (int i=0; i<sal.size(); i++)
            System.out.print(sal.get(i)+ " ");
       System.out.println();
     }

    public static void displayb(ArrayList<String> sal){

       for (int z = sal.size(); z >= 1; z--)
            System.out.print(sal.get(z-1) + " ");
       System.out.println();
    }
 }

「完了」というフレーズを入力してもコードが停止しません。私が間違っているかもしれないことを知っている人はいますか?

4

2 に答える 2

6

ArrayList salが文字列と等しいかどうかを確認してい"done"ます。これは決して真ではありません。おそらく、最新の入力がその文字列と等しいかどうかを確認したいでしょう:

while (true)
{
    String input = kb.next();

    if (input.equals("done"))
        break;

    sal.add(input);
    count++;
}
于 2013-10-25T16:35:40.160 に答える
1

kb.next()比較したい文字列です。それを変数に保存する必要があります:

String inputString = kb.next();
if (inputString.equals("done"))
    break;
sal.add(inputString);

"done"これにより、配列に追加されないという問題も解決されます。

于 2013-10-25T16:41:23.110 に答える