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

时间:2017-06-11 13:13:36

标签: java c#

您好我如何在java中实现相同的效果? 下面的代码在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);
}

2 个答案:

答案 0 :(得分:2)

您似乎正在使用C#中的锯齿状数组,其中数组的每个元素都是另一个数组。在Java中,您需要使用Scanner#nextLine()模仿Console.ReadLine()中的C#

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();
}
Java 8

您可以Stream#mapToInt使用Array.ConvertAll模仿C#中的{{3}}。

答案 1 :(得分:1)

在Java split()方法中返回String的数组。您必须将数组中的个人String解析为Integer

尝试这样的事情:

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));
}