我有两个实现Tree接口的类,NonEmptyTree和EmptyTree。 NonEmptyTree类中的toString()
方法应返回一个字符串:key=>value key=>value key>value
等...
我不知道如何在结果结束时删除最后一个空格。
编辑:我不能在String类中使用任何方法,我无法将任何内容与null进行比较。
public String toString() {
String result = "";
result+=(this.left.toString());
result+=this.key;
result+="=>";
result+=this.value;
result+=" ";
result+=this.right.toString();
return result;
}
我已经尝试为该类提供一个变量,指示NonEmptyTree实例是否是当前树中最大的,但控制台显示相同的字符串。
例如,字符串看起来像这样:"7=>seven 10=>ten 12=>twelve 15=>fifteen 16=>sixteen 17=>seventeen 20=>twenty 30=>thirty "
任何帮助将不胜感激。感谢
答案 0 :(得分:2)
使用String.trim()
:
return result.trim()
顺便说一句。如果您进行了大量String
次添加,最好使用StringBuilder
及其方法append()
,而不是使用String
添加多个+
。
答案 1 :(得分:2)
public String toString() {
StringBuilder result = new StringBuilder();
result.append(this.left.toString());
result.append(this.key);
result.append("=>");
result.append(this.value);
result.append(" ");
result.append(this.right.toString());
return result.toString().trim();
}
答案 2 :(得分:1)
你能简单地加一个'if'吗?见下文:
public String toString()
{
String result = "";
result+=(this.left.toString());
result+=this.key; result+="=>";
result+=this.value;
if (this.right!=null) // Just add this, so it doesn't add an extra space if no right result exists
{
result+=" ";
result+=this.right.toString();
}
return result;
}