所以我基本上完成了一个程序,在它的末尾,我将字符串从一个数组打印到一个文件。该数组可能包含空值,因此我在打印之前检查是否为空值,但我始终在文件的末尾以1个空值结束...
下面是我用来检查null的代码
for(int i=0;i<array2.length;i++)
{
if(array2[i] != null)
out.println(array2[i]);
}我知道该数组包含多个null实例,但只打印了1个。我尝试使用调试器,当array2i == 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语句中正在发生这种情况。为什么会这样?
发布于 2011-12-16 21:28:37
调试器并不总是清楚它是否输入了if条件。我不相信这段代码正在进入if条件,因为它看起来是这样的,并且您的null可能来自另一行代码。
您可以将代码编写为
for(ElementType e: array2.length)
if(e != null)
out.println("[" + e+ ']'); // extra text for debugging.
// I suspect your `null` will still be on a line of its own发布于 2011-12-16 21:35:51
您是不是也缺少了if语句的一组小技巧?
for(int i=0;i<array2.length;i++)
{
if(array2[i] != null)
{
out.println(array2[i]);
}
} https://stackoverflow.com/questions/8534801
复制相似问题