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

如何使用BufferedReader对象从Java中的一行读取多个整数值?

魏英勋
2023-03-14

我正在使用BufferedReader类读取Java程序中的输入。我想从一个用户那里读取输入,这个用户可以在一行空格中输入多个整数数据。我想读取整数数组中的所有这些数据。

输入格式-用户首先输入他/她想要输入的数字

然后在下一行中输入多个整数值-

输入:

5.

2 456 43 21 12

现在,我使用BufferedReader的对象(br)读取输入

int numberOfInputs = Integer.parseInt(br.readLine());

接下来,我想读取数组中的下一行输入

int a[] = new int[n];

但是我们不能用这种方法阅读

for(int i=0;i<n;i++)
{
   a[i]=Integer.parseInt(br.readLine()); //won't work
}

那么,我的问题有什么解决方案吗?或者我们不能使用BufferedReader对象从一行读取多个整数

因为使用Scanner对象我们可以读取这种类型的输入

for(int i=0;i<n;i++)
{
   a[i]=in.nextInt(); //will work..... 'in' is object of Scanner class
}

共有3个答案

林富
2023-03-14

如果你想读整数,但你不知道整数的数目

String[] integersInString = br.readLine().split(" ");
int a[] = new int[integersInString.length];
for (int i = 0; i < integersInString.length; i++) {
    a[i] = Integer.parseInt(integersInString[i]);
}
庄康胜
2023-03-14

迟到了,但您可以使用Java 8中的streams在一行程序中完成这项工作。

InputStreamReader isr= new InputStreamReader();
BufferedReader br= new BufferedReader(isr);

int[] input = Arrays.stream(br.readLine().split("\\s+")).mapToInt(Integer::parseInt).toArray();
秦哲瀚
2023-03-14

试试下一个:

int a[] = new int[n];
String line = br.readLine(); // to read multiple integers line
String[] strs = line.trim().split("\\s+");
for (int i = 0; i < n; i++) {
    a[i] = Integer.parseInt(strs[i]);
}
 类似资料:
  • 我正在处理一个程序,我想允许用户在提示时输入多个整数。我曾尝试使用扫描仪,但发现它只存储用户输入的第一个整数。例如: 输入多个整数:1 3 5 扫描仪将仅获取第一个整数1。是否有可能从一行中获取所有3个不同的整数,并在以后使用它们?这些整数是我需要根据用户输入操作的链表中数据的位置。我无法发布我的源代码,但我想知道这是否可行。

  • 问题内容: 可以说我有一个文本文件:data.txt(包含2000行) 如何从500-1500,然后从1500-2000读取给定的特定行,并显示特定行的输出? 此代码将读取整个文件(2000行) 如何修改上述代码以读取特定行? 问题答案: 我建议使用java.io.LineNumberReader。它扩展了BufferedReader,您可以使用它来获取当前行号 您还可以使用Java 7 ,如果适

  • 我想使用一个BufferedReader对象从两个或多个文件中读取文本。

  • 我如何使它能够提示用户在一行中输入多个由空格分隔的整数。如果第一个整数为0或小于0,当输入所有整数并按下回车键时,它将打印出“不良输入”。此外,我如何使它,当用户输入一个负数在行的末尾,它将停止输入数字,并使乘法所有他们在一起。 这是我到目前为止所拥有的,但我不确定我做得对不对。

  • 我试图创建一个简单的java服务器应用程序,但我很难用BufferedReader正确读取用户的输入。问题是行delimeter仅为CR LF(“\r\n”),因此我不能使用readLine()标准方法。因此,我尝试实现我自己的方法: 现在,当我尝试获取并打印结果时: ...它只将字符序列打印到第一个换行符(“\r”或“\n”),其余输入由第二次调用readCRLFLine(inputStream

  • 我写了一个简单的关于在客户端和服务器之间发送/接收消息的套接字教程。我使用DataOutputStream在流中写入字符串,但是如果我使用BufferedReader,服务器无法读取它 如果我使用PrintWriter来写(客户端),它可以工作。 这里怎么了?非常感谢。 1.客户: 2.服务器: