在Java8中从控制台读取文本

在Java8中从控制台读取文本,java,java-8,Java,Java 8,我在控制台中有两行,一行是数组大小,第二行是数组中的元素,元素按空间分割。 我需要将这些元素作为整数读取,并将其作为一个数组(如getInput(int[]nums))传递给函数 如何在Java8中使用缓冲读取器实现这一点 我已经尝试了下面的代码,但它不是我所期望的 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int t = Integer.parseInt(br.readLine());

我在控制台中有两行,一行是数组大小,第二行是数组中的元素,元素按空间分割。 我需要将这些元素作为整数读取,并将其作为一个数组(如getInput(int[]nums))传递给函数

如何在Java8中使用缓冲读取器实现这一点

我已经尝试了下面的代码,但它不是我所期望的

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

int t = Integer.parseInt(br.readLine());
System.out.println("Array Size:" + t);
int input[] = new int[t];

for (int i = 0; i < t; i++) {
    input[i] = Integer.parseInt(br.readLine());
}

for (int i = 0; i < input.length; i++) {
    System.out.println(input[i]);
}
BufferedReader br=新的BufferedReader(新的InputStreamReader(System.in));
int t=Integer.parseInt(br.readLine());
System.out.println(“数组大小:+t”);
int-input[]=新的int[t];
for(int i=0;i
为什么不用扫描仪呢?您可以使用
Scanner.nextLine()
读取这两行。例如:

import java.util.*;  
public class ScannerClassExample {    
    public static void main(String args[]){
        //Make a new Scanner reading the System input
        Scanner scanner = new Scanner(System.in);
        //Read the first line
        String arraySize = scanner.nextLine();
        //Read the elements and split on spaces
        String elementsLine = scanner.nextLine();
        String[] elements = elementsLine.split(" ");
        //If you want them to be integers, you could use this
        int[] intElements = new int[elements.length];
        for (int i = 0; i < elements.length; i++) {
            intElements[i] = Integer.parseInt(elements[i]);
        }
        scanner.close();
    }
}
import java.util.*;
公共类ScannerClassExample{
公共静态void main(字符串参数[]){
//使新扫描仪读取系统输入
扫描仪=新的扫描仪(System.in);
//读第一行
String arraySize=scanner.nextLine();
//阅读元素并在空格上拆分
String elementsLine=scanner.nextLine();
String[]elements=elementsLine.split(“”);
//如果希望它们是整数,可以使用
int[]元素=新的int[elements.length];
for(int i=0;i
如果使用此选项,我还建议使用
scanner.hasNext()
。寻找一些关于这方面的例子


希望这能有所帮助。

你试过什么了吗?具体在哪里?要从包含5个由空格分隔的值的行中获取单个int值,需要将该行读入字符串,将其拆分为单个标记,然后将这些标记解析为它们的int值。BufferedReader类对于从输入中获取单个令牌没有用处。Scanner类提供了一些有用的方法。“这不是我所期望的”-你也可以与我们分享结果,然后解释预期的结果吗?@NormR同意。我只想提一下,您仍然可以使用它逐行阅读,然后使用
String#split
拆分该行。我是java新手,为什么会被否决:(
import java.util.*;  
public class ScannerClassExample {    
    public static void main(String args[]){
        //Make a new Scanner reading the System input
        Scanner scanner = new Scanner(System.in);
        //Read the first line
        String arraySize = scanner.nextLine();
        //Read the elements and split on spaces
        String elementsLine = scanner.nextLine();
        String[] elements = elementsLine.split(" ");
        //If you want them to be integers, you could use this
        int[] intElements = new int[elements.length];
        for (int i = 0; i < elements.length; i++) {
            intElements[i] = Integer.parseInt(elements[i]);
        }
        scanner.close();
    }
}