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)
你可以用Matcher的appendReplacement方法做到这一点:
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)
这种方法可以避免创建多个字符串对象(演示).