在Java中将二维数组与单维数组进行比较

时间:2012-03-30 03:47:31

标签: java arrays comparison 2d multidimensional-array

有谁知道为什么这不编译?

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

我想使用二维数组执行此比较功能。我是新手!如果可以的话请帮忙。提前谢谢!

6 个答案:

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

我建议您使用eclipseBlueJ来编辑Java代码吗?这样的基本错误是实时显示的并且解释得很好吗?

答案 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( “完成!”);