簡體   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