如何删除之前附加的字符串到我的字符串生成器?如果我有例如删除附加字符串到StringBuilder
result.append("$10.00");
result.append("+" + "$20.00");
result.append("+" + "$5.00");
如何分别从一个字符串,它现在是“$10.00 + $20.00 + $5.00
”删除$ 5和$ 20?
如何删除之前附加的字符串到我的字符串生成器?如果我有例如删除附加字符串到StringBuilder
result.append("$10.00");
result.append("+" + "$20.00");
result.append("+" + "$5.00");
如何分别从一个字符串,它现在是“$10.00 + $20.00 + $5.00
”删除$ 5和$ 20?
您可以使用StringBuilder的delete
方法删除字符串,但是您必须提供您想要删除的开始和结束位置。
对于删除方法说明:
http://docs.oracle.com/javase/7/docs/api/java/lang/StringBuilder.html#delete(int,INT)
正在使用StringBuilder的问题。 – Boris
没有直接的办法做到这一点。我建议你将每个子串附加到List
甚至Stack
之后,并且弹出你不需要的数据结构。当您完全确定要在StringBuilder
中显示的内容时,请开始附加到Collection
并将每个子字符串放入最终的StringBuilder
。
恐怕没有一个简单的方法来做到这一点。
取而代之,您可以将结果存储到可以编制索引的结构中,如ArrayList(),并且只在最后形成结果字符串时才能确定要附加到您的数据的什么StringBuilder的
一旦你添加,它就会变成“一”,你不能扭转
但是你可以使用这个在这种情况下:
result.delete(result.lastIndexOf("+"), result.length());
为了您的具体的例子,每个金额被分隔以“+”字符表示,我会为此付出代价在StringBuilder中创建字符串后,在String类中使用plit方法。如果您可以更具体地说明您为什么要再次移除字符串,那将有助于选择正确的解决方案。
我想你真正想要的是一个StringBuilder对象上的删除方法,但恐怕这样的事情不存在。
根据你的问题那里它不需要删除字符从输出字符串。
由于Java 8新StringJoiner类已被引入。
StringJoiner stringJoiner = new StringJoiner(", ");
for (String item : itemList) {
stringJoiner.add(item)
}
欲了解更多信息,请阅读StringJoiner。
希望这会有所帮助。
您需要更改您用于计算器的方法。不要立即将这些值附加到用户输入的'StringBuilder'上。而当用户提供操作时,最终创建字符串。无论如何,恕我直言,这种方法看起来有点破。 – SudoRahul
对于你所要求的,你可能应该使用一个ArrayList(或者等同的)字符串,并且在你确定完成后将它们连接在一起。 StringBuilder的API并没有真正考虑你的用例。 – Sirs