【发布时间】:2011-12-16 13:25:00
【问题描述】:
所以我基本上完成了一个程序,最后我将字符串从数组打印到文件。该数组可能包含空值,所以我在打印之前检查空值,但我一直在文件的最后以 1 个空值结束......
这是我用来检查 null 的代码
for(int i=0;i<array2.length;i++)
{
if(array2[i] != null)
out.println(array2[i]);
}
我知道该数组包含多个 null 实例,但只打印了 1 个。我尝试使用调试器,当array2[i] == null 时,它仍然进入了条件语句...
所以我添加了一个 println 语句来帮助我了解发生了什么。现在看起来像这样:
for(int i=0;i<array2.length;i++)
{
if(array2[i] != null)
{
System.out.println("Adding " + array2[i]);
out.println(array2[i]);
}
在将所有字符串值打印到控制台之后,它会打印“添加 null”,所以我知道它发生在这个 if 语句中。为什么会这样???
【问题讨论】:
-
语句本身似乎没有任何问题 - 可能是打印的字符串的值实际上是“null”,而不是字符串为 null?
-
...或者您可能在循环之后再调用一次“println”?
-
你能发布你所有的代码吗?这看起来应该可以工作。
-
nylarlathotep 是对的!我更改了语句以检查字符串“null”,现在它不再打印了。现在我只需要弄清楚那个 null 是如何进入那里的......