Как перестать получать входные данные от пользователя - PullRequest
0 голосов
/ 25 сентября 2018

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

public class SortingString {

public static void main(String args[]) {

    Scanner in = new Scanner(System.in);
    ArrayList<String> words = new ArrayList<String>();

    System.out.println("Enter the words:");

    while (in.hasNext()) {
        words.add(in.nextLine());
    }

    Collections.sort(words);
}

Редактировать: Спасибо за все ответы, ребята.Теперь это работает.

Ответы [ 2 ]

0 голосов
/ 25 сентября 2018

Это было бы возможным решением, когда слово "выход" не добавляется в список words.

public class SortingString {

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

    System.out.println("Enter the words:");
    boolean isFinished = false;
    while (!isFinished && in.hasNext()) {
        String word = in.nextLine();

        if ("q".equals(word)) {
            isFinished = true;
        } else {
            words.add(word);
        }
    }

    in.close(); 
    Collections.sort(words);
}
0 голосов
/ 25 сентября 2018

Как насчет?

public class SortingString {
    public static void main(String args[]) {

        Scanner in = new Scanner(System.in);
        ArrayList<String> words = new ArrayList<String>();

        while (in.hasNext()) {
            System.out.println("Enter the word:");
            words.add(in.nextLine());
            System.out.println("Do you want to continue? (y/n)");
            in.hasNext();
            if (!in.nextLine().equalsIgnoreCase("y")) {
                break;
            }
        }
        Collections.sort(words);

        in.close(); // Don't forget to close the stream !!
    }
}

Более элегантный способ: (РЕДАКТИРОВАТЬ полный код)

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

    System.out.println("Enter the words or write STOP to exit:");
    while (in.hasNext()) {
        String inputLine = in.nextLine();
        if (inputLine.equalsIgnoreCase("STOP")) {
            break;
        }
        words.add(inputLine);
    }

    Collections.sort(words);

    System.out.println("The words sorted:");
    System.out.println(words);

    in.close(); // Don't forget to close the stream !!
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...