Java 字符串[]的不兼容类型错误

Java 字符串[]的不兼容类型错误,java,arrays,incompatibletypeerror,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

嗨,有个错误,不知道为什么。这里是我的挑战代码

    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);
}
}

然后,我尝试使用一个不是数组的常规字符串,但它不起作用。然后我试着在
grid[I]
所在的位置插入一个字符串,但这也不起作用。我被卡住了,谢谢你的帮助

错误是因为
split()
方法返回字符串数组
String[]
。但您正试图将其分配给字符串
单个[b]


编辑:
single[b]
不是数组。它只是一个普通的字符串
single
是一个数组。

错误是因为
split()
方法返回一个字符串数组
String[]
。但您正试图将其分配给字符串
单个[b]

编辑:
single[b]
不是数组。它只是一个普通的字符串
single
是一个数组。

String方法返回一个数组,您不能将数组分配给字符串:

single[b] = (grid[i].split("(?!^)")); 
因此出现了错误。可能您需要将single定义为二维数组并相应地使用它。

String方法返回一个数组,您不能将数组分配给String:

single[b] = (grid[i].split("(?!^)")); 

因此出现了错误。可能您需要将single定义为二维数组并相应地使用它。

以下是您打算做的:

String[] single = grid[i].split("(?!^)");
调用
String.split()
Java将返回一个已分配的
String[]
数组


不幸的是,您从未完成您的代码,因此我们无法为您提供更多帮助。

以下是您打算做的:

String[] single = grid[i].split("(?!^)");
调用
String.split()
Java将返回一个已分配的
String[]
数组

不幸的是,您从未完成代码,因此我们无法为您提供更多帮助。

方法
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);
String single[];
单个=新字符串[(m*m)]];
对于(int i=0;i<(m);i++){
对于(int b=0;b,
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);
String single[];
单个=新字符串[(m*m)]];
对于(int i=0;i<(m);i++){


对于(intb=0;b请在发布示例代码时缩进它。Sry我刚开始,你能解释一下这是什么意思吗?不用担心!基本上,每次键入{时,它后面的行应该缩进~4个空格,直到到达},这样就很容易看到{}块的内部。两个“for”语句可以正确地执行此操作…但第三个语句不能正确地执行此操作,这使得代码更难阅读。哦,好的,谢谢你告诉我,我下次一定会这样做。不用担心!欢迎来到Stack Overflow;有很多东西要学,但这一过程非常有趣。请在发布示例代码时缩进。Sry我刚刚开始,你可以吗解释这意味着什么?不用担心!基本上,每次你输入一个{,它后面的行应该缩进~4个空格,直到你到达},这样就很容易看到一个{}块里面有什么。两个“for”语句可以正确地执行此操作…但是第三个语句不行,这使得代码更难阅读。哦,好的,谢谢你告诉我,下次我一定会这样做。不用担心!欢迎使用Stack Overflow;有很多内容需要学习,但这一过程非常有趣。谢谢你的帮助!这很有效,但我能从哪里获得它呢因此,只分配了一个字符串。例如,我有字符串“abc”,我可以将它拆分为Firstletter=“a”Seconfletter=“b”和Thridletter=“c”。现在它生成一个类似于[a,b,c]的数组.P.S我应该说得更具体一点,对你没有错。@JTattack我不明白你在问什么。请说得更清楚。对不起。现在它输出一个数组,每个数组的内部都有它分解的部分。我想知道是否有可能得到每个部分。按它的LEF分解。不是[a,b,c],而是[a][b][c]。希望这更有意义。谢谢你的帮助,你为我指出了正确的方向,我已经弄明白了。这很好。但很有趣,但我仍然不明白你想问什么。你的意思是你想要字符串的每个字符吗?谢谢你的帮助!这很有效,但我能得到这样一个字符串吗例如,我有字符串“abc”,我可以将它拆分为Firstletter=“a”Seconfletter=“b”和Thridletter=“c”。现在它生成一个类似于[a,b,c]的数组.P.S我应该说得更具体一点,对你没有错。@JTattack我不明白你在问什么。请说得更清楚。对不起。现在它输出一个数组,每个数组的内部都有它分解的部分。我想知道是否有可能得到每个部分。按它的LEF分解。不是[a,b,c],而是[a][b][c]。希望这更有意义。谢谢你的帮助,你为我指明了正确的方向,我已经找到了答案。这很好。但很有趣,但我仍然不明白你想问什么。你的意思是你想要字符串的每个字符吗?