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]。希望这更有意义。谢谢你的帮助,你为我指明了正确的方向,我已经找到了答案。这很好。但很有趣,但我仍然不明白你想问什么。你的意思是你想要字符串的每个字符吗?