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

如何使用BufferedReader对象从Java中的一行读取多个整数值?,java,arrays,integer,buffer,bufferedreader,Java,Arrays,Integer,Buffer,Bufferedreader,我正在使用BufferedReader类读取Java程序中的输入。 我想从一个用户那里读取输入,这个用户可以在一行空格中输入多个整数数据。 我想读取整数数组中的所有这些数据 输入格式- 用户首先输入他/她想要输入的数字 然后在下一行中输入多个整数值- 输入: 五, 245643212 现在,我使用BufferedReader的对象(br)读取输入 int numberOfInputs = Integer.parseInt(br.readLine()); 接下来,我想读取数组中的下一行输入 in

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

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

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

输入:

五,

245643212

现在,我使用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
}
for(int i=0;i请尝试下一步:

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]);
}
inta[]=newint[n];
String line=br.readLine();//读取多个整数行
字符串[]strs=line.trim().split(\\s+);
对于(int i=0;i
如果您想读取整数,但不知道整数的数量

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]);
}
String[]integerInstance=br.readLine().split(“”);
int a[]=新的int[integerInstalling.length];
for(int i=0;i
晚会迟到了,但您可以使用
流在Java 8中的一行程序中完成这项工作

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

int[] input = Arrays.stream(br.readLine().split("\\s+")).mapToInt(Integer::parseInt).toArray();

您可以使用java.util包的StringTokenizer类。StringTokenizer类允许应用程序将字符串拆分为令牌。您可以使用StringTokenizer类的nextToken()方法使用此令牌

您可以使用以下StringTokenizer构造函数:

StringTokenizer(字符串str、字符串分隔符)

您可以使用空格(“”)作为参数

int a[] = new int[N];
StringTokenizer st = new StringTokenizer(br.readLine() , " ");
for(int i=0 ; i<N ; i++) {
    a[i] = Integer.parseInt(st.nextToken());
}
inta[]=newint[N];
StringTokenizer st=新的StringTokenizer(br.readLine(),“”);
对于(inti=0;i
importjava.io.*;
公共类HelloWorld{
公共静态void main(字符串[]args){
int i;
System.out.println(“输入数组元素”);
InputStreamReader isr=新的InputStreamReader();
BufferedReader ib=新的BufferedReader(isr);
int a[]=新int[5];

对于(i=0;i我将此代码用于列表:

List<Integer> numbers = Stream.of(reader.readLine().split("\\s+")).map(Integer::valueOf).collect(Collectors.toList());
Integer.parseInt(br.readLine())
->读取整行,然后将其转换为整数

scanner.nextInt()

String[] in = br.readLine().trim().split("\\s+"); 
// above code reads the whole line, trims the extra spaces 
// before or after each element until one space left, 
// splits each token according to the space and store each token as an element of the string array.


for(int i = 0; i < n; i++)
    arr[i] = Integer.parseInt(in[i]);

// Converts each element in the string array as an integer and stores it in an integer array.
String[]in=br.readLine().trim().split(\\s+);
//上面的代码读取整行,修剪多余的空格
//在每个元素之前或之后,直到剩下一个空格,
//根据空间分割每个令牌,并将每个令牌存储为字符串数组的一个元素。
对于(int i=0;i
正如你提到的,有两行- 第一行取整数的数量,第二行取那个么多

INPUT: 5 2 456 43 21 12
所以要解决这个问题并将其转换为数组-

String[] strs = inputData.trim().split("\\s+");  //String with all inputs 5 2 456 43 21 12

int n= Integer.parseInt(strs[0]);    //As you said first string contains the length

int a[] = new int[n];               //Initializing array of that length

for (int i = 0; i < n; i++)         
{

a[i] = Integer.parseInt(strs[i+1]);     // a[0] will be equal to a[1] and so on....

}


     
        
String[]strs=inputData.trim().split(\\s+);//包含所有输入的字符串5 2 456 43 21 12
int n=Integer.parseInt(strs[0]);//正如您所说,第一个字符串包含长度
int a[]=new int[n];//初始化该长度的数组
对于(int i=0;i
i/p:34 54

 BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
                                                                        
 StringTokenizer st = new StringTokenizer(br.readLine()," ");
 for(int i=0;i<st.countTokens();i++){
   a=Integer.parseInt(st.nextToken());
   b=Integer.parseInt(st.nextToken());
 }
BufferedReader br=新的BufferedReader(新的InputStreamReader(System.in));
StringTokenizer st=新的StringTokenizer(br.readLine(),“”);

对于(int i=0;i@LalitChoudhary不客气。别忘了,如果一个答案令人满意地解决了你的问题,你可以。请添加一些解释。这个答案应该对更广泛的公众有用,而不仅仅是对OP.Supery解决方案。。
INPUT: 5 2 456 43 21 12
String[] strs = inputData.trim().split("\\s+");  //String with all inputs 5 2 456 43 21 12

int n= Integer.parseInt(strs[0]);    //As you said first string contains the length

int a[] = new int[n];               //Initializing array of that length

for (int i = 0; i < n; i++)         
{

a[i] = Integer.parseInt(strs[i+1]);     // a[0] will be equal to a[1] and so on....

}


     
        
 BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
                                                                        
 StringTokenizer st = new StringTokenizer(br.readLine()," ");
 for(int i=0;i<st.countTokens();i++){
   a=Integer.parseInt(st.nextToken());
   b=Integer.parseInt(st.nextToken());
 }