日期:2014-05-20 浏览次数:21009 次
/**
* 在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人民
*/
------解决方案--------------------
/**
* 在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;
}