【发布时间】:2015-08-16 08:45:48
【问题描述】:
在 Java 中,我可以迭代 StringBuilder 的内容并删除/插入/替换字符以使循环保持一致吗?如果是这样,最佳实践,我应该使用 for 循环、迭代器还是从零到 length()-1 的传统循环?例如,
StringBuilder b=new StringBuilder("12345");
for (int i=0; i< b.length(); i++) //traditional loop, iterator(which?),other?
char c= b.chartAt(i);
if(c == '1') b.deleteCharAt(i); // reduce the size,what is i pointing to now?
if(c=='2') b.insert(i,"two"); //increase the size
}
编辑:假设我有一个大字符串,我需要对其进行更改,并且我不想每次都生成副本。 StringBuilder 是一个可变字符串,如何正确使用它来进行就地更改?我知道我可以在字符串本身上使用 replace / replaceall,但这不是重点。
【问题讨论】:
-
如果你想删除任何东西,最好从字符串的末尾迭代到开头。
-
你为什么有
b.insert(2,"two")?应该是i或2? -
谢谢,已修复!当然是我!
标签: java string stringbuilder