我想让用户输入一个字符串,我想在二维数组中取其字符
第一个用户输入数组的大小为n * n数组,所以如果用户输入4
,例如他使数组4 * 4 2d,我想在输入我的代码时打印输入
Scanner in=new Scanner(System.in);
int n=in.nextInt();
char arr[][]=new char[n][n];
String a;
for (int i=0;i<n;i++)
{
a=in.next(); //Eneter the sting
for (int j=0;j<n;j++)
{
for (int k=0;k<n;k++)
{
arr[j][k]=a.charAt(j); //i get the character in the array
}
}
}
System.out.println(Arrays.deepToString(arr)); //to check the array
如果用户输入
4
...#
.#.#
.#..
####
输出
[[#, #, #, #], [#, #, #, #], [#, #, #, #], [#, #, #, #]]
预期输出为用户输入
[[., ., ., #], [., #, ., #], [., #, ., .], [#, #, #, #]]
我刚从2天开始java和2d阵列iam不太好了
如何在我预期的2d数组中填充它
最后我要打印数组中每个#的索引,例如在1 4
2 2
中找到的第二行的2 3
中找到的第一行,依此类推
答案 0 :(得分:1)
试试这个, 它会工作!!
Scanner in=new Scanner(System.in);
int n=in.nextInt();
char arr[][]=new char[n][n];
String a;
for (int i=0;i<n;i++)
{
a = in.next();
for (int j=0;j<n;j++)
{
arr[i][j]=a.charAt(j);
}
}
System.out.println(Arrays.deepToString(arr));
答案 1 :(得分:1)
你有太多的循环,这是你修改过的代码:
Scanner in = new Scanner(System.in);
int n = in.nextInt();
char arr[][] = new char[n][n];
String a;
for (int i = 0; i < n; i++) {
a = in.next(); //Eneter the sting
for (int k = 0; k < n; k++) {
arr[i][k] = a.charAt(k); //i get the character in the array
}
}
System.out.println(Arrays.deepToString(arr));
// print indexes
for (int i = 0; i < n; i++) {
System.out.println("Line " + i);
for (int k = 0; k < n; k++) {
if (arr[i][k] == '#') {
// (print i+1 and k+1 instead of i and k, if you prefer)
System.out.print(i + " " + k);
}
}
System.out.println();
}