在二维数组中获取空间分离的行输入
编程相对较新,我正在处理一个问题,需要我读取空格分隔的整数并将它们输入到二维数组中,但我似乎不明白为什么我无法这样做。任何暗示可能的方法将有所帮助在二维数组中获取空间分离的行输入
例如。输入将看起来像这样
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
}
}
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();
}
这需要输入逐行吧?我可以做一些像在输入一个新的行字符后,程序输入一个新的数组行? @Aaron? –
它会在填充每行的值时,在行开始i处,然后是其余列j。 你能解释一下吗? – Aaron
我的意思是说,当我提供输入在控制台像2 3等行的时候,当我提供2 3之后的下一行的值编译器遇到“/ n”一个新的行字符,所以我认为数组的输入可以由此操纵,虽然我对这种方法非常怀疑 –
这很好,我会读到我介绍的两件新事物即Integer.valueof()和Arrays.deepToString,谢谢 –
@Hardik请接受答案,如果你有它! – Imran