string在打印时一直说null,即使其中有数据

9jyewag0  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(407)

**结束。**此问题需要详细的调试信息。它目前不接受答案。
**想改进这个问题吗?**更新问题,使其成为堆栈溢出的主题。

19天前关门了。
改进这个问题
我在这段代码中生成一个字符串,然后对它应用一个子字符串。

String input = "AnyString"

for(int i = 0; i < input.length(); i++)
//i tracks which line we are on when printing the triangle
{
    int tracker = 0;
    for(int j = 0; j < line.length(); j++)
    //j tracks which "column of the line" we are currently on
    {
        if(i + 1 == input.length()
        //If we are on the the last line of the triangle
        || Math.abs(j - line.length()/2) == i)
        //or if the column we are on is i letters away from the center
        {
            outputs[i] += line.charAt(j);
            out.println("Outputs has been updated with:\n"+line.charAt(i));
            out.println("\nAnd it is now:\n"+outputs[i]);
            tracker = j;
            //tracker will keep track of what the position of the last letter was
        }else{
            out.println("Outputs has been updated with: a space");
            out.println("\nAnd it is now: "+outputs[i]);
            outputs[i] += " ";
        }
    }
    //Where the substring is applied
}

当它为第一个循环运行时,输出为:
输出已更新为:空格
现在是:空
你知道为什么在打印之前我已经在空格里加了一个字符串,但是它说它是空的吗?我刚刚注意到,在输出上,在它说null之前有一个空格。现在,我将声明从字符串中删除单词null,但是如果有人能建议一个不那么迟钝的解决方案,我将不胜感激。
谢谢大家的时间和关注!

zphenhs4

zphenhs41#

打印输出来自 else 分支机构。
上面没有代码路径 else 在哪儿 outputs[i] 已设置,因此其值为 null .
你得不到 NullPointerException 在打印报表中或 outputs[i] += " "; 因为这两个语句处理空值的方式有点奇怪。 println 连接总是这样 String.valueOf() 关于他们的论点。两种情况下的空字符串值都将成为字符串 "null" .

相关问题