在二维数组中获取空​​间分离的行输入

问题描述:

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

例如。输入将看起来像这样

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 []
m [i] = sc.nextInt();

^

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

其次,有什么方法可以正确地做到这一点?

在这里你去:

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 
    } 
} 
+0

这很好,我会读到我介绍的两件新事物即Integer.valueof()和Arrays.deepToString,谢谢 –

+0

@Hardik请接受答案,如果你有它! – Imran

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

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

你的逻辑有点偏离,你想要求用户输入行开始我和其他列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(); 
} 
+0

这需要输入逐行吧?我可以做一些像在输入一个新的行字符后,程序输入一个新的数组行? @Aaron? –

+0

它会在填充每行的值时,在行开始i处,然后是其余列j。 你能解释一下吗? – Aaron

+0

我的意思是说,当我提供输入在控制台像2 3等行的时候,当我提供2 3之后的下一行的值编译器遇到“/ n”一个新的行字符,所以我认为数组的输入可以由此操纵,虽然我对这种方法非常怀疑 –