@Test
public void go(){
String str = "abmecdme";
String oldRP = "c" , newRP ="abc";
int forward = 0; // 源串中,forward 查找下一个oldRP位置
int follow = 0; // 源串中,follow 记录forward的上一个位置[follow ,forward]为不需要被替换的部分
StringBuilder sb = new StringBuilder();
while(forward!=-1 && forward<=str.length()){
if((forward = str.indexOf(oldRP, forward))!=-1){ // 【源字符串】,某位置还能找到 【替换串】
sb.append(str.substring(follow,forward)); //[follow,forward]为不需要被替换的部分
sb.append(newRP); //需要被替换的部分
forward += oldRP.length(); //跳到新大陆开始寻找
follow = forward; //重合 follow 与 forward
}else { // 不用替换了,追加剩余
sb.append(str.substring(follow));
}
}
System.out.println(sb);
}
自定义实现replaceAll功能,不使用replace
最新推荐文章于 2023-06-02 16:30:55 发布