有谁知道为什么这不编译?
public class ArrayCompare{
public static void main (String []args){
String words= "Hello this is a test";
String delimiter=" ";
String [] blocker=words.split(delimiter);
String [][] grid= new String [100][100];
grid[0]="Hello";
if (grid[0].equals(blocker[0])){
System.out.print("Done!");
}
}
}
我想使用二维数组执行此比较功能。我是新手!如果可以的话请帮忙。提前谢谢!
答案 0 :(得分:1)
试试这个:
grid[0][0]="Hello";
grid
是一个二维数组。出于同样的原因,您需要这样做:
if (grid[0][0].equals(blocker[0]))
答案 1 :(得分:0)
它不会编译,因为grid [0]不是String类型。
它是String [](Array)类型。变量grid[0]
实际上指向String[100]
数组。
您正尝试通过
为字符串分配字符串“Hello” grid[0]="Hello";
声明。
如果要将字符串分配给grid
中的某个位置,则必须提供两个索引 - 以下是合法的:
grid[0][0]="Hello";
答案 2 :(得分:0)
grid[0]
是String[]
类型,而不是String
。所以你的代码应该是这样的
grid[0] = new String[100];
grid[0][0] = "Hello";
if (grid[0][0].equals(bloker[0])) {
//your logic...
}
答案 3 :(得分:0)
String [][] grid= new String [100][100];
grid[0]="Hello";
有你的问题。您正在尝试将字符串分配给字符串数组。将2d数组视为数组数组。
你可能想要像
这样的东西grid[0][0]="Hello!";
答案 4 :(得分:0)
网格是2d数组。你不能像d [0] =“你好”那样做。所以,如果你想在0位置指定值
d[0][0] = "Hello";
if (grid[0][0].equals(blocker[0])){
System.out.print("Done!");
}
答案 5 :(得分:0)
首先,您不能使用单个索引
为多维数组的元素赋值格[0] = “你好”;
你需要指定像grid [0] [0] =“Hello”这样的索引
这会将第0行的第0个元素设置为Hello
同样在进行比赛时 if(grid [0] .equals(blocker [0])){ 是System.out.print( “完成!”); 你必须在这里传递相同的索引(你不能将字符串与数组对象进行比较) if(grid [0] [0] .equals(blocker [0])){ 是System.out.print( “完成!”);