首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

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

2011-12-03 
请教java 替换指定出现位置的字符串各位大侠:小弟有这样一个字符串:人民圆顶困厄加压人民sdklkfsdalk人民

请教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;    } 

热点排行