要求是这样的,一个字符串str,其中出现了N次“@parameter”,给定一个int参数n,一个字符参数parameter,求一段代码,将str中第n个“@parameter”替换成parameter,其余的不变,类似数据操作ParapareStatement中的setString等操作,我想了很久

解决方案 »

  1.   

    private static String strReplace(String param,int n){
    String str = "@parameter¥@parameter#@parameter&@parameter";
    if(param == null || "".equals(param) || n <=0)
    return str; 
    String[] temp = str.split("@parameter");
    int len = temp.length;
    if(len < n-1)
    return str;
    else {
    StringBuffer strb = new StringBuffer();
    for(int i = 0 ; i < len ; i ++){
    strb.append(temp[i]);
    if(i != n-1){
    strb.append("@parameter");
    }else {
    strb.append(param);
    }
    }
    return strb.toString();
    }
    }
      

  2.   

    /**
     * 这是一个替换连续相同字符串中指定字符串的方法
     * @author denghanyi
     *
     */
    public class Replace {

    private static String str = "@parameter@parameter@parameter@parameter@parameter@parameter";

    public String replace(int n,String parameter) {
    String[] temp = str.split("@"); 
    for(int i = 1;i < temp.length;i++) {
    if(i == n) {
    temp[i] = parameter;
    }
    else
    temp[i] = "@" + temp[i];
    }

    String a = "";
    for(int i = 1; i < temp.length;i++) {
    a += temp[i];
    }

    return a;

    }

    public static void main(String[] args) {
    Replace re = new Replace();
    str = re.replace(4, "parameter");
    System.out.println(str);
    }
    }
      

  3.   

    /**
     * 这是一个替换连续相同字符串中指定字符串的方法
     * @author denghanyi
     *
     */
    public class Replace {

    private static String str = "@parameter@parameter@parameter@parameter@parameter@parameter";

    public String replace(int n,String parameter) {
    String[] temp = str.split("@"); 
    for(int i = 1;i < temp.length;i++) {
    if(i == n) {
    temp[i] = parameter;
    }
    else
    temp[i] = "@" + temp[i];
    }

    String a = "";
    for(int i = 1; i < temp.length;i++) {
    a += temp[i];
    }

    return a;

    }

    public static void main(String[] args) {
    Replace re = new Replace();
    str = re.replace(4, "parameter");
    System.out.println(str);
    }
    }
      

  4.   

    string.indexOf("@parameter")
    String.split()
    就这几个方法。
    我懒得 打开Eclipse写Code。。
    呵呵
      

  5.   


    public class StrReplace{
      public static String replace(String input,String source,String dest,int index){
          StringBuffer sb=new StringBuffer();
          int count=0;
      int pos=0;
      boolean find=false;
          while((pos=input.indexOf(source))!=-1){
       count++;
       if(count==index){
            find=true;
            sb.append(input.substring(0,pos));
    sb.append(dest);
    sb.append(input.substring(pos+source.length()));
    break;
       }else{
            sb.append(input.substring(0,pos+source.length()));
            input=input.substring(pos+source.length()); 
       } 
      }
      if(!find || index<=0)throw new IndexOutOfBoundsException();
          return sb.toString();
      }
      public static void main(String args[]){
           String str="222@parameter222@parameter222";
       str=replace(str,"@parameter","HHHHHHHHHH",1);
       System.out.println(str);
      }
    }
      

  6.   

    好像有String类里关于正则表达是的运用 
    里面有相关的API
      

  7.   

    import javax.swing.*;public class To {
    public static void main(String[] args){
    String s="@parameter b @parameter c dd @parameter ww";
    String replaceS=JOptionPane.showInputDialog("Enter the string need replace:");

    String s1=s.substring(0,s.lastIndexOf(replaceS));
    String s2=s.substring(s.lastIndexOf(replaceS)+replaceS.length(),s.length());

    StringBuffer s3=new StringBuffer();

    s3.append(s1);
    s3.append("parameter");
    s3.append(s2);

    System.out.println(s);
    System.out.println(s3);
    }
    }
    感觉可以,别忘给哥们点辛苦费!
      

  8.   

    public static String replace(StringBuffer strb,int n,String parm,String repalcedparm){
    int i=0;
    int temp = strb.indexOf(parm);
    if(temp<0) return "没有找到"+parm;
    while(i<n-1){     
    temp = strb.indexOf(parm,temp+1);
    i++;

    if(temp<0) return parm+"的总数小于"+n;
    }
    strb.replace(temp, temp+2, repalcedparm);
    return strb.toString();
    }
      

  9.   

    上面有点小问题
    public static String replace(StringBuffer strb,int n,String parm,String repalcedparm){
    int i=0;
    int temp = strb.indexOf(parm);
    if(temp<0) return "没有找到"+parm;
    while(i<n-1){     
    temp = strb.indexOf(parm,temp+1);
    i++;

    if(temp<0) return parm+"的总数小于"+n;
    }
    strb.replace(temp, temp+parm.length(), repalcedparm);
    return strb.toString();
    }
      

  10.   


    public static String deleteSubString(String str,String substr){
    StringBuilder sb = new StringBuilder(str);
    int index = sb.lastIndexOf(substr);
    return sb.delete(index, index+substr.length()).toString();
    }
      

  11.   

    不好意思,上面看错了,搞成删除去了。public static String deleteSubString(String str,String searchstr,String replacestr){
    StringBuilder sb = new StringBuilder(str);
    int index = sb.lastIndexOf(searchstr);
    return sb.replace(index, index+searchstr.length(),replacestr).toString();
    }