繁体   English   中英

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

[英]Comparing a 2 dimensional array to a single dimensional array in Java

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

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

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

尝试这个:

grid[0][0]="Hello";

grid是一个二维数组。 出于同样的原因,您需要这样做:

if (grid[0][0].equals(blocker[0]))

它不会编译,因为grid [0]不是String类型。 它是String [](Array)类型。 变量grid[0]实际上指向String[100]数组。

您正在尝试通过分配字符串“Hello”到数组

grid[0]="Hello"; 声明。

如果要将字符串分配给grid某个位置,则必须提供两个索引 - 以下是合法的:

grid[0][0]="Hello";

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

grid[0]String[]类型,而不是String 所以你的代码应该是这样的

grid[0] = new String[100];
grid[0][0] = "Hello";
if (grid[0][0].equals(bloker[0])) {
    //your logic...
}
String [][] grid= new String [100][100];

  grid[0]="Hello";

这是你的问题。 您正在尝试将字符串分配给字符串数组。 将2d数组视为数组数组。

你可能想要这样的东西

grid[0][0]="Hello!";

网格是2d数组。 你不能像d [0] =“你好”那样做。 所以,如果你想在0位置分配值

d[0][0] = "Hello";

 if (grid[0][0].equals(blocker[0])){
System.out.print("Done!");
 }

首先,您不能使用单个索引为多维数组的元素赋值

格[0] = “你好”;
你需要指定像grid [0] [0] =“Hello”这样的索引这将把第0行的第0个元素设置为Hello

同样在计算if(grid [0] .equals(blocker [0])){System.out.print(“Done!”); 你必须在这里传递相同的索引(你不能将字符串与数组对象进行比较)if(grid [0] [0] .equals(blocker [0])){System.out.print(“Done!”);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM