【问题标题】:Null pointer exception in for loop [closed]for循环中的空指针异常[关闭]
【发布时间】:2013-05-10 14:05:06
【问题描述】:

我尝试通过将数组放入 for 循环来从字符串数组中获取我不想要的字符串。

我尝试下面的代码,但我得到 java.lang.NullPointerException,我不知道为什么。

感谢您的帮助。

String unWanted = new String[]{"","a","b","c"};

String[] temp = new String[unWanted.length-1];
int p = 0;
for (int k = 0; k < unWanted.length; k++){
    if(unWanted[k].equals("") == false)
    {
        temp[p] = unWanted[k];
        p++;
    }
}

【问题讨论】:

  • 你在哪一行得到你的 NPE?
  • 除了 String unWanted[] = new String[]{"","a","b","c"};似乎工作
  • 第一行应该以String[]而不是String开头。
  • 如果您在数组的第一个String 中添加一些文本,您将获得 NPE。

标签: java for-loop syntax arrays


【解决方案1】:

这里唯一的错误是 String 数组声明

String[] unWanted = new String[]{"","a","b","c"};

【讨论】:

  • 等等,会不会是错字??
  • @PermGenError 即使是,代码也不会产生NPE
  • @rem 因此,投票结束不是一个真正的问题:P
【解决方案2】:

temp 的长度为 3,但您在循环中的第 4 位插入值。

【讨论】:

  • “意外”,OP的代码确实是插入3个值(空字符串检查...)
  • @LukasEder,我马上就明白了,我删除了我的答案,但我得到了 2 票赞成?哈哈
  • 人们倾向于同意,而不是思考...... ;-)
  • @LukasEder 这就是你们在这里赢得声誉的方式。 :)
【解决方案3】:

先改变这一行

String unWanted = new String[]{"","a","b","c"};

String[] unWanted = new String[]{"","a","b","c"};

【讨论】:

    【解决方案4】:

    它甚至可以编译吗?

    String unWanted = new String[]{"","a","b","c"};
    

    改成

     String[] unWanted = new String[]{"","a","b","c"};
    

    更改后,我的console 中没有 NullPointerException。效果很好

    【讨论】:

    • @Shreyos Adikari 感谢您的编辑。
    猜你喜欢
    • 1970-01-01
    • 2020-03-21
    • 1970-01-01
    • 1970-01-01
    • 2020-06-21
    • 2011-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多