2014-02-26 42 views
2

如何删除之前附加的字符串到我的字符串生成器?如果我有例如删除附加字符串到StringBuilder

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

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

+1

您需要更改您用于计算器的方法。不要立即将这些值附加到用户输入的'StringBuilder'上。而当用户提供操作时,最终创建字符串。无论如何,恕我直言,这种方法看起来有点破。 – SudoRahul

+0

对于你所要求的,你可能应该使用一个ArrayList(或者等同的)字符串,并且在你确定完成后将它们连接在一起。 StringBuilder的API并没有真正考虑你的用例。 – Sirs

回答

2

没有直接的办法做到这一点。我建议你将每个子串附加到List甚至Stack之后,并且弹出你不需要的数据结构。当您完全确定要在StringBuilder中显示的内容时,请开始附加到Collection并将每个子字符串放入最终的StringBuilder

0

恐怕没有一个简单的方法来做到这一点。

取而代之,您可以将结果存储到可以编制索引的结构中,如ArrayList(),并且只在最后形成结果字符串时才能确定要附加到您的数据的什么StringBuilder的

3

一旦你添加,它就会变成“一”,你不能扭转

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

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

为了您的具体的例子,每个金额被分隔以“+”字符表示,我会为此付出代价在StringBuilder中创建字符串后,在String类中使用plit方法。如果您可以更具体地说明您为什么要再次移除字符串,那将有助于选择正确的解决方案。

我想你真正想要的是一个StringBuilder对象上的删除方法,但恐怕这样的事情不存在。

0

根据你的问题那里它不需要删除字符输出字符串

由于Java 8StringJoiner类已被引入。

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

欲了解更多信息,请阅读StringJoiner

希望这会有所帮助。