举个例子,假设特定字符是2和5。
原字符串12222234555556666666。
最终处理完以后得到为1222345556666666。
解释:其中2和5是特定字符,重复了3次以上需要只保留3次;但是6不是特定字符,所以重复多少次都可以。
最好能用正则实现,这样代码能简洁一些。如果用循环的话,希望能有一个时间复杂度低的方法。
如果是2和5混合出现连续3次以上只保留前三个呢?
比如,252525,替换后为252
1、抱歉刚看到,这个道理其实是一样的,替换目标字符与次数限制就行。
2、示例
String s ="252525";
//--匹配25输出后拼接目标字符首位,因连续出现所有保留字符第三位定是目标字符首位
System.out.println(s.replaceAll("(25){3}", "$1").concat("2"));