你好错了,不知道为什么。这是我的挑战代码。
public class Solution {
static void displayPathtoPrincess(int n, String [] grid){
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int m;
m = in.nextInt();
String grid[] = new String[m];
for(int i = 0; i < m; i++) {
grid[i] = in.next();
}
int[] x;
x = new int[m-1];
x[0] = 0;
String p;
String single[];
single = new String[(m*m)];
for(int i = 0; i < (m); i++){
for(int b = 0; b <= m; b++){
single[b] = (grid[i].split("(?!^)"));
System.out.println(p);
}
}
displayPathtoPrincess(m,grid);
}
}
代码不整齐或接近完成但是当我运行它时我收到此错误:
Solution.java:29: error: incompatible types
single[b] = (grid[i].split("(?!^)"));
^
required: String
found: String[]
1 error
然后我尝试使用不是数组的常规字符串。然后我试着把grid[i]
放在一个字符串中,但也没用。我得到了任何帮助,我很感激!
答案 0 :(得分:1)
错误是因为split()
方法返回一个String数组String[]
。但是您尝试将其分配给字符串single[b]
。
编辑:single[b]
不是数组。它只是一个常规字符串。 single
是一个数组。
答案 1 :(得分:1)
String split方法返回一个数组,你不能将数组赋值给string:
single[b] = (grid[i].split("(?!^)"));
因此错误。可能你需要将单个定义为二维数组并相应地使用它。
答案 2 :(得分:1)
以下是您打算做的事情:
String[] single = grid[i].split("(?!^)");
当您调用String.split()
时,Java将返回已分配的String[]
数组。
不幸的是,您从未完成过您的代码,因此我们仅限于帮助您。
答案 3 :(得分:1)
split()
方法返回数组String[]
,并且您正尝试将数组插入String
。
只需将代码编辑为:
String single[][];
single = new String[(m * m)][];
for (int i = 0; i < (m); i++) {
for (int b = 0; b <= m; b++) {
single[i*m+b] = (grid[i].split("(?!^)"));
System.out.println(p);
}
}
displayPathtoPrincess(m, grid);