关闭

自定义实现replaceAll功能,不使用replace

315人阅读 评论(0) 收藏 举报
分类:
	@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);									
	}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    文章分类
    最新评论