如何确定何时输入最后一个整数?爪哇

时间:2020-04-05 12:52:56

标签: java loops arraylist integer

我目前必须输入一个字母才能停止while循环并打印出数字列表。 有没有更好的方法来确定何时输入最后一个int?

` Scanner scanner = new Scanner(System.in);
            System.out.println("Enter a sequence of integer values" +
                    " to be sent to the server");
            List<Integer> numberList = new ArrayList<Integer>();
            while(scanner.hasNextInt()) {
                numberList.add(scanner.nextInt());
            }
            System.out.println(numberList);
            os.write(String.valueOf(numberList));
            scanner.close();`

2 个答案:

答案 0 :(得分:0)

尝试一下

final Scanner scanner = new Scanner(System.in);
System.out.println("Enter a sequence of integer values to be sent to the server");
final List<Integer> numberList = new ArrayList<Integer>();
int scanned;
do {
    final int scanned = scanner.nextInt();
    numberList.add(scanned);
} while (scanner.hasNextInt() && scanned != yourChar);
os.write(String.valueOf(numberList));
scanner.close();`

希望我能正确理解您的问题。

答案 1 :(得分:0)

执行以下操作:

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

public class Program {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("Enter a sequence of integer values to be sent to the server (x to terminate)");
        List<Integer> numberList = new ArrayList<Integer>();
        String[] data = scanner.nextLine().split(" ");
        int i = 0;
        while (i < data.length && data[i].matches("\\d+")) {// The regex \d+ matches only integers
            numberList.add(Integer.parseInt(data[i]));
            i++;
        }
        System.out.println(numberList);
    }
}

示例运行:

Enter a sequence of integer values to be sent to the server (x to terminate)
10 20 30 X
[10, 20, 30]

此外,请勿关闭Scanner的{​​{1}},因为它也会同时关闭System.in

如有疑问/问题,请随时发表评论。