简体   繁体   English

扫描仪从控制台读取输入数组

[英]Scanner read an array of inputs from console

Hi how can i achieve the same effect in java? 嗨,我如何在Java中达到相同的效果? The code below is in C#. 下面的代码在C#中。

 for(int arr_i = 0; arr_i < 6; arr_i++)
{
           string[] arr_temp = Console.ReadLine().Split(' ');
           arr[arr_i] = Array.ConvertAll(arr_temp,Int32.Parse);
}

It seems that you're working with jagged arrays in C# where each element of the array is another array. 似乎您正在使用C#中的锯齿状数组,其中数组的每个元素都是另一个数组。 In Java you'll need to use a Scanner#nextLine() to imitate Console.ReadLine() in C# . Java您需要使用Scanner#nextLine()模仿C# Console.ReadLine()

Scanner scanner = new Scanner(System.in);
...
...
...
for(int arr_i = 0; arr_i < 6; arr_i++)
{
     String[] arr_temp = scanner.nextLine().split(" ");
     arr[arr_i] = Arrays.stream(arr_temp).mapToInt(Integer::parseInt).toArray();
}

in Java 8 you can use Stream#mapToInt to imitate Array.ConvertAll in C# . Java 8 ,可以使用Stream#mapToInt模仿C# Array.ConvertAll

In Java split() method returns an array of String . 在Java中, split()方法返回String数组。 You have to parse the individual String in the array to Integer . 您必须将数组中的单个String解析为Integer

Try something like this: 尝试这样的事情:

public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    String[] data = in.nextLine().split(" ");
    int[] numbers = new int[data.length];
    for (int i = 0; i < data.length; i++) {
        numbers[i] = Integer.parseInt(data[i]);
    }
    System.out.println(Arrays.toString(numbers));
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM