在二维阵列中取空间分离行输入

时间:2016-08-03 10:34:26

标签: java arrays multidimensional-array java.util.scanner

我相对较新的编程,我正在处理一个问题,需要我读取空格分隔的整数并将它们输入二维数组但我似乎不明白为什么我不能这样做。任何暗示可能的方法都会有所帮助

EG。输入将如下所示

2 // FOR DIMENSION

2 3 // ROW1

4 5 // ROW 2

import java.io.*;
import java.util.*;
import java.lang.*;
public class HelloWorld{

 public static void main(String []args){
    Scanner sc= new Scanner(System.in);
    System.out.println("Hello World");
    System.out.println("Enter Dimension of Matrix");
    int N= sc.nextInt();
    int[][] m=new int [N][N];
    for (int i=0;i<N;i++)
    {   System.out.println("Enter Elements of row "+ i);
       for(int j=0;j<N;j++ )
       {
        m[i]=sc.nextInt();
       }
    }
    System.out.println(m);
 }
}

我测试了上面的代码并在控制台上得到了以下结果

HelloWorld.java:16:错误:不兼容的类型:int无法转换为int []
            米[I] = sc.nextInt();

                           ^

首先,我想知道我的想法(方法)对吗?

其次,正确执行此操作的可能方法是什么?

2 个答案:

答案 0 :(得分:0)

m是一个多维数组,意味着你必须指定m [i] [?]。像这样

m[i][j]=sc.nextInt();

你的逻辑有点偏,你想要用户在行开始i和其他列j输入。试试这个和快乐的编码:)

for (int i=0;i<N;i++){                  
    for(int j=0;j<N;j++){
        System.out.println("Enter Elements of row "+ i);
        m[i][j]=sc.nextInt();
    }
}

for (int i=0;i<N;i++){     
    for(int j=0;j<N;j++){
        System.out.print(m[i][j]);
    }
    System.out.println();
}

答案 1 :(得分:0)

你去:

import java.io.*;
import java.util.*;
import java.lang.*;

public class HelloWorld {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter Dimension of Matrix");

        int N = sc.nextInt();
        int[][] m = new int[N][N];
        for (int i = 0; i < N; i++) {
            System.out.println("Enter Elements of row " + i);
            for (int j = 0; j < N; j++) {
                m[i][j] = Integer.valueOf(sc.next());//replaced line with proper code
            }
        }
        sc.close();
        System.out.println(Arrays.deepToString(m));//use this api to print arrays
    }
}