【发布时间】:2015-03-25 19:35:48
【问题描述】:
我正在尝试为匹配的单词添加计数,如下所示:
匹配词:“文本”
输入:文本文本文本文本文本示例文本
输出:Text1 Text2 Text3 Text4Text5 ExampleText6
我试过这个:
String text = "Text Text Text TextText ExampleText";
String match = "Text";
int i = 0;
while(text.indexOf(match)!=-1) {
text = text.replaceFirst(match, match + i++);
}
不起作用,因为它会永远循环,匹配保留在字符串中并且 IndexOf 永远不会停止。
你会建议我做什么? 有更好的方法吗?
【问题讨论】:
-
考虑使用两个字符串,一个用于原始数据,一个用于修改。可能的改进:使用 StringBuilder,使用正则表达式。
-
创建第二个字符串,在其中写入已经“调整”的部分。然后,从原来的String中去掉,这样while indexof最终会返回-1
标签: java