Java 多态二叉搜索树
我有两个类,NoneEmptyTree和EmptyTree,它们实现了树接口<非空树类中的code>toString()方法应返回字符串:Java 多态二叉搜索树,java,string,binary-tree,polymorphism,Java,String,Binary Tree,Polymorphism,我有两个类,NoneEmptyTree和EmptyTree,它们实现了树接口toString()方法应返回字符串:key=>value-key=>value-key>value等。。。 我不知道如何删除结果末尾的最后一个空格。 编辑:我不能在String类中使用任何方法,也不能将任何内容与null进行比较 public String toString() { String result = ""; result+=(this.left.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;
}
我尝试为类设置一个变量,该变量指示非空树实例是否是当前树中最大的实例,但控制台显示了相同的字符串
例如,字符串如下所示:
"7=>seven 10=>ten 12=>twelve 15=>fifteen 16=>sixteen 17=>seventeen 20=>twenty 30=>thirty "
任何帮助都将不胜感激。谢谢使用String.trim()
:
顺便说一句,如果你做了大量的String
添加,最好使用StringBuilder
及其方法append()
,而不是使用+
添加多个String
使用String.trim()
:
顺便说一句,如果你做了大量的
String
添加,最好使用StringBuilder
及其方法append()?见下文:
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;
}
你能简单地添加一个“如果”吗?见下文:
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;
}
我认为需要交换if条件中的两个语句。如果我理解正确,如果右分支不为null,那么输出应该有一个空格后跟该分支。非常正确。我太匆忙地从原来的帖子上复制/粘贴了它。已经纠正了。谢谢。我想你需要交换if条件中的两个语句。如果我理解正确,如果右分支不为null,那么输出应该有一个空格后跟该分支。非常正确。我太匆忙地从原来的帖子上复制/粘贴了它。已经纠正了。谢谢。StringBuilder的默认容量为16个字符。考虑用更大的初始容量初始化它以防止增量重新分配和复制。但即使考虑到这会比他现在做的更好;)@seh:这里的问题是,我们需要知道结果字符串有多大,因为我们不想创建太大的缓冲区。谢谢大家的回答。不幸的是,我不允许使用String类的任何方法,StringBuilder
的默认容量是16个字符。考虑用更大的初始容量初始化它以防止增量重新分配和复制。但即使考虑到这会比他现在做的更好;)@seh:这里的问题是,我们需要知道结果字符串有多大,因为我们不想创建太大的缓冲区。谢谢大家的回答。不幸的是,我不允许使用String类的任何方法…我尝试了trim。。它不起作用。我不允许使用String类中的任何方法。谢谢你的帮助我试过修剪。。它不起作用。我不允许使用String类中的任何方法。谢谢你的帮助
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();
}