string []的类型错误不兼容

时间:2015-06-26 02:46:21

标签: java arrays incompatibletypeerror

你好错了,不知道为什么。这是我的挑战代码。

    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]放在一个字符串中,但也没用。我得到了任何帮助,我很感激!

4 个答案:

答案 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);