2011-04-29 90 views
0

我的問題是,我可以檢查一個地方如果null,或者用我的方式在二維字符串數組中設置一個空值。在Java中的二維數組郎格

String [][] xx=new String [][] 
public void set(int a,int b) 
    { 
xx[a][b]=null;//setting null 
} 
. 
. 
. 
. 
. 
if(xx[a][b]==null)//check if null 
    ///some codes 

這可能嗎?或者,如果錯了,該怎麼辦it.?Regards ..

+1

你會知道,如果你嘗試它。 – Martin 2011-04-29 14:32:01

+0

你試過了,它沒有用嗎?如果不是,那麼它應該,而另一些可能是問題。 – Zirak 2011-04-29 14:32:27

回答

1

是。由於這是一個對象數組(它實際上只是一組內存地址,所以你可以將它們設置爲null,因爲它將把地址設置爲0)。但是,如果您有一個基本類型的二維數組,例如int,則不能將位置設置爲null。

+0

我不能適用於字符串,那麼?..所以我可以做到這一點,刪除for循環? – Cole 2011-04-29 14:35:48

+1

對於String對象,它將正常工作。任何以大寫字母開頭的標準類型都是一個對象(並且您應該遵循這個慣例爲您自己的類)。任何以小寫字母開頭的標準類型(例如「int」或「double」)都是原語。 – 2011-04-29 15:02:54

0

您需要指定數組中有多少個元素,並且您不必手動將元素設置爲null。

public class Dim2AR 
{ 
    // String [][] xx = new String [][]; 
    String [][] xx = new String [20][20]; 

    public void set (int a, int b) 
    { 
     xx[a][b] = null; 
    } 

    public void set (int a, int b, String v) 
    { 
     xx[a][b] = v; 
    } 

    public Dim2AR() 
    { 
     check (3, 3); 
     set (3, 3); 
     check (4, 3); 
     set (4, 3, "foo"); 
     check (4, 3); 
    } 

    public static void main (String args[]) 
    { 
     new Dim2AR(); 
    } 

    public void check (int a, int b) 
    { 
     if (xx[a][b] != null) System.out.println ("> " + xx[a][b]); 
     else System.out.println ("-"); 
    } 
}