как перестать принимать пользовательский ввод и распечатать список - PullRequest
0 голосов
/ 07 ноября 2018

Я пытаюсь создать программу, которая принимает пользовательские вводы, сохраняет их в Arraylist и распечатывает Arraylist после того, как пользователь вводит определенную строку. Моя текущая проблема заключается в том, что я не могу заставить пользовательские вводы остановиться и распечатать. я думаю, что у меня есть сильная база, я не вижу, что не так.

import java.util.ArrayList;
import java.util.Scanner;

public class GroceryArraylist {
    public static void main(String[] args) {        
        ArrayList<String> Grocerylist = new ArrayList<String>();
        Scanner input = new Scanner(System.in);
        System.out.print("Enter an item, enter end to stop ");
        while (!input.equals("end")) {
            Grocerylist.add(input.next());
            if (Grocerylist.equals("end")){
                for(String str:Grocerylist)
                    System.out.println(str);
            }
        }
    }
}

Ответы [ 3 ]

0 голосов
/ 07 ноября 2018

Вы можете использовать команду hasNext, чтобы избежать включения "конца" в массив.

public class GroceryArraylist {
  public static void main(String[] args) {        
    ArrayList<String> Grocerylist = new ArrayList<String>();
    Scanner input = new Scanner(System.in);

    System.out.print("Enter an item, enter \"end\" to stop ");
    while (input.hasNext()) {
        Grocerylist.add(input.next());
        if(input.hasNext("end")) {
            System.out.println(Grocerylist);
        break;
        }           
      }
   }
}
0 голосов
/ 07 ноября 2018

Или вы можете использовать цикл do-while вместо:

public class GroceryArraylist{
public static void main(String[] args) {        
    ArrayList<String> Grocerylist = new ArrayList<>();
    Scanner input = new Scanner(System.in);
    System.out.print("Enter an item, enter \"end\" to stop ");

    do {Grocerylist.add(input.next());}
    while (!input.hasNext("end"));
    System.out.println(Grocerylist);
    System.exit(0);
  }
}
0 голосов
/ 07 ноября 2018

Вот ошибка:

Grocerylist.equals ( "конец")

GroceryList имеет тип ArrayList и никогда не будет равен строке "end". Это как сравнивать яблоки с апельсинами.

Вы можете попробовать это вместо:

while (!input.equals("end")) {

        String input = input.next();
        Grocerylist.add(input);


        if ("end".equals(input)){
            for(String str:Grocerylist)
                System.out.println(str);
            }
            break;
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...