gpt4 book ai didi

java - 如果输入的长度未定义,如何从 std.in 读取

转载 作者:行者123 更新时间:2023-11-30 08:09:11 25 4
gpt4 key购买 nike

我在使用 Scanner 从 java 中的标准输入读取输入时遇到问题。我需要读取用户输入并将其放入动态数组中。以下是输入示例:

4 6
2 3
4 8
9 5

我的代码:

Scanner scan = new Scanner(System.in);

List<int[]> temp = new ArrayList<>();

int[] couple = new int[2];
int current = 0;
while (scan.hasNextInt()) {
if (current == 2) {
temp.add(couple);
current = 0;
couple = new int[2];
}
couple[current] = scan.nextInt();
current++;
}
scan.close();

我做错了什么?

最佳答案

您所做的一切都是正确的,但您没有将最后一对添加到列表中。您可以通过在循环后添加以下代码来解决此问题:

if (current == 2) {
temp.add(couple);
}

Demo 1

不过,您的方法并不理想:您可以成对读取它们,而不是一次读取一个整数,如下所示:

while (true) {
if (!scan.hasNextInt()) break;
int first = scan.nextInt();
if (!scan.hasNextInt()) break;
int second = scan.nextInt();
temp.add(new int[] { first, second });
}

Demo 2

关于java - 如果输入的长度未定义,如何从 std.in 读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30666705/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com