我正在处理一个程序,我想允许用户在提示时输入多个整数。我曾尝试使用扫描仪,但发现它只存储用户输入的第一个整数。例如:
输入多个整数:1 3 5
扫描仪将仅获取第一个整数1。是否有可能从一行中获取所有3个不同的整数,并在以后使用它们?这些整数是我需要根据用户输入操作的链表中数据的位置。我无法发布我的源代码,但我想知道这是否可行。
你想把数字作为一个字符串,然后使用String.split (" ")
来得到3个数字。
String input = scanner.nextLine(); // get the entire line after the prompt
String[] numbers = input.split(" "); // split by spaces
数组的每个索引将持有数字的String表示形式,这些数字可以通过Integer.parseInt()变为int
s
试试这个
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNext()) {
if (in.hasNextInt())
System.out.println(in.nextInt());
else
in.next();
}
}
默认情况下,扫描仪使用分隔符模式“\p{javaWhitespace}”,该模式至少匹配一个空白作为分隔符。你不必做任何特别的事。
如果要匹配空格(1或更多)或逗号,请将扫描仪调用替换为以下内容
Scanner in = new Scanner(System.in).useDelimiter("[,\\s+]");
我一直在hackerrank/leetcode上使用它
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String lines = br.readLine();
String[] strs = lines.trim().split("\\s+");
for (int i = 0; i < strs.length; i++) {
a[i] = Integer.parseInt(strs[i]);
}
我如何使它能够提示用户在一行中输入多个由空格分隔的整数。如果第一个整数为0或小于0,当输入所有整数并按下回车键时,它将打印出“不良输入”。此外,我如何使它,当用户输入一个负数在行的末尾,它将停止输入数字,并使乘法所有他们在一起。 这是我到目前为止所拥有的,但我不确定我做得对不对。
问题内容: 我们的教授让我们用Java进行一些基本的编程,他提供了一个网站以及所有可以注册和提交问题的内容,因为今天我需要做一个例子,我觉得自己处在正确的轨道上,但是我无法找出其余的。这是实际的问题: 这是到目前为止我得到的: 现在,我总是会得到答案,因为我正在阅读单行,如何考虑所有行?谢谢 由于某些奇怪的原因,每次我要执行时都会出现此错误: 无论我使用什么版本的答案,都会出现此错误,该怎么办?
问题内容: 如何从Java中的标准输入读取整数值 问题答案: 你可以使用(API):
问题内容: 我想从python3中的单行输入读取整数数组。例如:将此数组读取到变量/列表 我尝试过的 但这不会将它们转换为整数。它创建字符串数组 第二个为我工作。但是我正在寻找一种优雅的(单行)解决方案。 问题答案: 用途: 只需添加,在Python 2.x中就不需要调用,因为已经返回了a ,但是在Python 3.x中“许多迭代可迭代对象的进程本身会返回迭代器”。 此输入必须添加(),即圆括号对
我正在使用BufferedReader类读取Java程序中的输入。我想从一个用户那里读取输入,这个用户可以在一行空格中输入多个整数数据。我想读取整数数组中的所有这些数据。 输入格式-用户首先输入他/她想要输入的数字 然后在下一行中输入多个整数值- 输入: 5. 2 456 43 21 12 现在,我使用BufferedReader的对象(br)读取输入 接下来,我想读取数组中的下一行输入 但是我们
我目前正在用Java编写一个程序,其中我需要从用户那里获得输入,这是一段文本。然而,我需要用户能够在一次输入文本的多个段落。当程序提示输入时,只需粘贴整段文本就可以实现这一点。我对输入使用扫描器,当我将多个段落粘贴到输入中时,无论何时打印存储文本的变量,都不会抛出错误,只输出第一节(在第一个换行符之前)。如何使用多个换行符存储整段文本,而不提示用户为每个文本块输入单独的输入? 我已经有了一些代码,