Java字符串替换

hat*_*lla 1 java string str-replace apache-stringutils

让我们说我有一个字符串"aabbccaa".现在我想"aa"用另一个字符串替换给定字符串中的出现.但它应该是以下列方式.

第一次出现"aa"应该被替换"1"的下一次出现,并"aa"通过"2"等.

所以,字符串的结果变成了"1bbcc2".

小智 10

您可以replaceFirst()在for循环中使用,其中计数器正在递增...

for (int i = 1; string.contains("aa"); i++) {
    string = string.replaceFirst("aa", "" + i);
}
Run Code Online (Sandbox Code Playgroud)


das*_*ght 5

你可以用MatcherappendReplacement方法做到这一点:

Pattern p = Pattern.compile("aa");
Matcher m = p.matcher("aabbccaahhhaahhhaaahahhahaaakty");
StringBuffer sb = new StringBuffer();
// Variable "i" serves as a counter. It gets incremented after each replacement.
int i = 0;
while (m.find()) {
    m.appendReplacement(sb, ""+(i++));
}
m.appendTail(sb);
System.out.println(sb.toString());
Run Code Online (Sandbox Code Playgroud)

这种方法可以避免创建多个字符串对象(演示).