Я хочу поместить пользовательский ввод и сохранить его в массиве, когда пользователь вводит Exit, он должен печатать имена, введенные пользователем, по возрастанию .. какие-либо советы? - PullRequest
0 голосов
/ 07 мая 2020

Итак, вот мой код. Мне не удалось использовать возрастание .. Я хочу, чтобы пользователь вводил бесконечное количество имен, а затем вводил exit, чтобы получить результат ..

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

public class Arr {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("enter some Names");
        ArrayList<String> names = new ArrayList<String>();

        while (scanner.hasNextLine()) {
            if (scanner.hasNextLine()) {
                names.add(scanner.next());
            } else {
                String s1 = scanner.next();
                if ("exit".equalsIgnoreCase(s1)) {
                    break;
                }
            }
        }

        String string = "the Names you wrote are : ";
        for (String x : names) {
            System.out.print(x);
        }
        scanner.close();

    }
}

1 Ответ

2 голосов
/ 07 мая 2020

if(scanner.hasNextLine()) никогда не войдет в блок else, потому что scanner.hasNextLine() никогда не будет false.

Вместо этого сделайте что-то вроде этого:

String input = scanner.next();

if("exit".equalsIgnoreCase(input)) {
    break;
} else {
    names.add(input);
}
...