2011-04-29 89 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 ("-"); 
    } 
}