读书人

请问java 替换指定出现位置的字符串

发布时间: 2011-12-03 22:57:58 作者: rapoo

请教java 替换指定出现位置的字符串
各位大侠:
小弟有这样一个字符串:"人民圆顶困厄加压人民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;    } 

读书人网 >J2SE开发

热点推荐