Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中使用字符串上的.equals引发空指针异常?_Java_Arrays_Multidimensional Array - Fatal编程技术网

在java中使用字符串上的.equals引发空指针异常?

在java中使用字符串上的.equals引发空指针异常?,java,arrays,multidimensional-array,Java,Arrays,Multidimensional Array,我有一个二维数组和。我传入一个方法,然后尝试遍历数组并找出其中有多少个。当使用.equals时,我不断得到一个null指针异常。该方法应返回数组中的数量。我尝试迭代二维数组,然后将二维数组转换为一维数组,但仍然出现异常我不确定我做错了什么,如果有任何帮助,将不胜感激。 我的代码是: 公共静态整数countseatString[][]aud{ int openSeats = 0; String [] audit; audit = new String[120]; int

我有一个二维数组和。我传入一个方法,然后尝试遍历数组并找出其中有多少个。当使用.equals时,我不断得到一个null指针异常。该方法应返回数组中的数量。我尝试迭代二维数组,然后将二维数组转换为一维数组,但仍然出现异常我不确定我做错了什么,如果有任何帮助,将不胜感激。 我的代码是:

公共静态整数countseatString[][]aud{

   int openSeats = 0;

   String [] audit;
   audit = new String[120];

   int k = 0;
   for(int i= 0; i < aud.length; i++)
       for(int j = 0; j < aud[i].length; j++)
           audit[k++] = aud[i][j];

    for(int i= 0; i <= audit.length; i++){   
       openSeats = audit[i].equals("#")? +1:+0;
    }
return openSeats;

由于循环条件,您将获得一个异常:

for(int i= 0; i <= audit.length; i++){

注意你是如何使用的,你声明了String[]audit,这一事实使得解决方案更加复杂,因为你可能试图将所有的二维都放在一维中,认为这会简化问题,但不会。留在二维中,进行搜索

   int openSeats = 0;
   for(int i= 0; i < aud.length; i++)
   {
       for(int j = 0; j < aud[i].length; j++)
       {
           if( aud[i][j].equals("#") )
           {
               openSeats++;
           }
       }
   }
   return openSeats; 

正如其他人所指出的,如果您想增加值doopenseats+=audit[i],那么即使在将符号更改为之后,您也需要额外使用i来运行for-one迭代.equals?1:0;或使用if和openSeats++。您现在得到的NullPointer异常可能是因为audit.length始终是120,这是您定义的。您实际上应该检查audit[i]是null,因为您需要依赖它来知道数组的结束位置。否则,您可以使用ArrayList,而不必自己检查null。