2014-02-27 87 views
0

我的代码:阵列被当作值忽略空

for (int i = 0; i < directory.length; i++) { 
    if (directory[i].contains (number)) { 
     if (directory[i+1] == null){ 
      directory[i] = null; 
     } 
     else { 
      for (int k=i; k<directory.length; k++){ 
       System.out.println(directory[k]); 
       System.out.println(directory[k+1]); 
       if (directory[i+1] != null){ 
        directory[k] = directory[k+1]; 
        System.out.println(directory[k]); 
       } 

我认为重要的位是 “如果(目录第[i + 1]!= NULL){” 什么我使用是一个数组我试图找到下一个元素是否为空,然后执行代码。但是,即使下一个值为空,它仍然会执行。有什么建议么?

谢谢。

+0

这是一个'我'与''k'的错字问题。 –

+0

对不起,没有明确的问题,我现在已经解决了这个问题:) – user3006216

+4

我想你会在'i'循环的最后一次迭代中得到一个数组索引超出范围错误,不是吗? –

回答

1

你的问题是你没有在你的循环中使用循环索引。您只是一次又一次地测试初始值的值。

if (directory[i+1] != null){ 

应该是这个

if (directory[k+1] != null){ 
1

目录的下一个值[I + 1]是永远不会为null @“如果(目录[I + 1]!= null){“因为在else语句之前,你检查是否目录[i + 1] == null

我的猜测是迭代中的一个小错字,也许你的ment目录[k + 1]?