如何删除以前附加的字符串到String Builder?如果我有例如
result.append("$10.00");
result.append("+" + "$20.00");
result.append("+" + "$5.00");
如何从一个现在为“$10.00 + $20.00 + $5.00
”的字符串中分别删除$ 5和$ 20?
答案 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。
希望这有帮助。