各位大侠:
小弟有这样一个字符串:"人民圆顶困厄加压人民sdklkfsdalk人民lkkjfalakjdsf人民lkjsafdlkflk人民"
上面的字符串中共出现了5次人民,我想写个方法来随机替换指定出现次数的字符串,不知道怎么实现,请大家指教下,比如
public static String replace(String source,int index){
}
我调用这个方法的时候,这样调用,replace(source,3),这样就只是把出现在第3个位置的人民替换掉了,其它地方的人民还是保持不变,想了半天,没折了,来此请教,小弟万分感激.
------解决方案--------------------
- Java code
/** * 在source中,指定位置index的 before 替换成 after * @param //index = 0,1,2,3,.... *返回替换后的结果 */ public static String replace(String source,int index,String before ,String after){ String regex = before; Matcher matcher = Pattern.compile(regex).matcher(source); for(int counter = 0;matcher.find();counter++) { if(counter == index) return source.substring(0,matcher.start())+ after + source.substring(matcher.end(),source.length()); } return source; } public static void main(String[] args) { String source = "人民圆顶困厄加压人民sdklkfsdalk人民lkkjfalakjdsf人民lkjsafdlkflk人民" ; for(int i=-1; i<6; i++) System.out.println(replace(source,i,"人民","我们"));//index = 0,1,2,3,.... }/*人民圆顶困厄加压人民sdklkfsdalk人民lkkjfalakjdsf人民lkjsafdlkflk人民我们圆顶困厄加压人民sdklkfsdalk人民lkkjfalakjdsf人民lkjsafdlkflk人民人民圆顶困厄加压我们sdklkfsdalk人民lkkjfalakjdsf人民lkjsafdlkflk人民人民圆顶困厄加压人民sdklkfsdalk我们lkkjfalakjdsf人民lkjsafdlkflk人民人民圆顶困厄加压人民sdklkfsdalk人民lkkjfalakjdsf我们lkjsafdlkflk人民人民圆顶困厄加压人民sdklkfsdalk人民lkkjfalakjdsf人民lkjsafdlkflk我们人民圆顶困厄加压人民sdklkfsdalk人民lkkjfalakjdsf人民lkjsafdlkflk人民*/
------解决方案--------------------
- Java code
/** * 在source中,指定位置index的 before 替换成 after * @param 有效范围index = 0,1,2,3,.... 个数-2, 个数-1. 即从下标0开始 *返回替换后的结果,超过有效范围返回source */ public static String replace(String source,int index,String before ,String after){ Matcher matcher = Pattern.compile(before).matcher(source); for(int counter = 0;matcher.find();counter++) if(counter == index) return source.substring(0,matcher.start())+ after + source.substring(matcher.end(),source.length()); return source; }