当前位置: 首页 > 知识库问答 >
问题:

如何将扫描仪输入添加到队列,并在输入读取[duplicate]后退出循环

赫连琦
2023-03-14

我试图将扫描仪输入添加到< code>ArrayList中,但是在输入完输入后,我无法退出循环。完成输入后,如何退出这个循环?

ArrayList<String> inputs = new ArrayList<>();
int i = 0;
while(scan.hasNext()){//while there is an hasNext
    inputs.add(scan.next());// add to the inputs array of queue
    i++;
}scan.close()

;

共有1个答案

潘弘扬
2023-03-14

您可以检查用户是否输入了长度为 0 的字符串,即 “”,表示它们已完成:

import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        Queue<String> queue = new LinkedList<>();
        System.out.println("Enter input:");
        String input;
        while (scan.hasNextLine() && (input = scan.nextLine()).length() != 0) {
            queue.add(input);
        }
        System.out.printf("Queue: %s%n", queue);
    }
}

示例用法:

Enter input:
A
B
C

Queue: [A, B, C]
 类似资料:
  • 问题内容: 我正在尝试做的是拥有多个具有不同变量的输入。每个变量将是不同方程式的一部分。我正在寻找一种方法来做,我想我有一个主意。我只想知道这是否合法,也许还有更好的方法。 问题答案: 如果每个输入都问相同的问题,则应使用循环和输入数组: 或者如Chip所建议的,您可以从一行中解析输入: 您在正确的轨道上,所做的工作正常。这只是一种更好,更灵活的处理方式。

  • 我有以下课程 我不能输入歌曲名nr 1,因为它总是同时显示前两首歌。 如果我输入3,就像这样:

  • 只是想知道在我完成输入后如何终止程序?因为在几次“输入”之后扫描仪仍然会继续,假设我要继续输入...我试过了: 和 它们不起作用....程序继续运行,打乱了初衷,

  • 对于作业,我必须编写以下代码: 当我尝试编译它时,它在命令提示符下给了我3个错误,说“无法解析符号,符号:类扫描仪,位置:类单词,扫描仪用户输入=新扫描仪(System.in)”。我不确定错误在哪里。我应该使用BufferedReader作为输入吗?

  • 我试图构建一个通过扫描仪构建的整数ArrayList。用户必须输入5到10个整数才能使ArrayList有效,但在运行程序时,实际输入数将是未知的。 如何构建程序,使其只在用户输入5、6、7、8、9或10个整数时运行?

  • 我开发了一个字符排序器,我想每次字符串排序后提示用户输入一个新的字符串。我遇到的问题是扫描仪一直在扫描用户的第一个输入。如果我使用scanner.next(),它不会计算输入末尾的空白,这不是解决方案。 这是while循环的开始。一旦代码完成,它将再次从“inputtext”开始。