删除附加的字符串到StringBuilder

时间:2014-02-26 11:49:22

标签: java stringbuilder

如何删除以前附加的字符串到String Builder?如果我有例如

result.append("$10.00");
result.append("+" + "$20.00");
result.append("+" + "$5.00");

如何从一个现在为“$10.00 + $20.00 + $5.00”的字符串中分别删除$ 5和$ 20?

6 个答案:

答案 0 :(得分:3)

一旦你追加它,它就会变成“一个”而你却无法逆转

但是在这种情况下你可以使用它:

result.delete(result.lastIndexOf("+"), result.length());

答案 1 :(得分:2)

没有直接的方法可以做到这一点。我建议你将每个子字符串附加到List或甚至Stack,然后从数据结构中弹出任何不需要的内容。当您完全确定要在StringBuilder中展示的内容时,请通过浏览Collection并将每个子字符串放入最终StringBuilder来开始附加。

答案 2 :(得分:0)

您可以使用StringBuilder的delete方法删除字符串,但您必须提供要删除的开始和结束位置。

删除方法说明:

http://docs.oracle.com/javase/7/docs/api/java/lang/StringBuilder.html#delete(int,int)

答案 3 :(得分:0)

恐怕没有一种简单的方法可以做到这一点。

相反,您可以将结果存储到可以索引的结构中,例如ArrayList(),并且当您确定要添加到StringBuilder的数据时,最后只构造结果字符串。

答案 4 :(得分:0)

对于你的具体例子,每个美元金额用'+'字符分隔,我会在从StringBuilder创建字符串之后在String类中使用split方法。如果您可以更具体地说明为什么要再次删除字符串,那将有助于选择正确的解决方案。

我猜你真正想要的是StringBuilder对象上的remove方法,但我担心这样的东西不存在。

答案 5 :(得分:0)

根据您的问题,不需要从输出字符串中删除字符

由于 Java 8 已经引入了新的 StringJoiner 类。

StringJoiner stringJoiner = new StringJoiner(", ");
for (String item : itemList) {
    stringJoiner.add(item)
}

有关详细信息,请参阅StringJoiner

希望这有帮助。