**结束。**此问题需要详细的调试信息。它目前不接受答案。
**想改进这个问题吗?**更新问题,使其成为堆栈溢出的主题。
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,但是如果有人能建议一个不那么迟钝的解决方案,我将不胜感激。
谢谢大家的时间和关注!
1条答案
按热度按时间zphenhs41#
打印输出来自
else
分支机构。上面没有代码路径
else
在哪儿outputs[i]
已设置,因此其值为null
.你得不到
NullPointerException
在打印报表中或outputs[i] += " ";
因为这两个语句处理空值的方式有点奇怪。println
连接总是这样String.valueOf()
关于他们的论点。两种情况下的空字符串值都将成为字符串"null"
.