短文我设的str, 其中的将要被替换的单词为str1,新单词为str2 谢谢指教!

解决方案 »

  1.   


    StringBuffer好像需要指定替换的位置,replace(int start, int end, String str)
    你可以把StringBuffer的值赋给一个String,然后用String里面的replace,replace(target, replacement)
      

  2.   


        public static StringBuffer replaceAll(StringBuffer sb, String oldStr, String newStr) {
            int i = sb.indexOf(oldStr);
            int oldLen = oldStr.length();
            int newLen = newStr.length();
            while (i > -1) {
                sb.delete(i, i + oldLen);
                sb.insert(i, newStr);
                i = sb.indexOf(oldStr, i + newLen);
            }
            return sb;
        }    public static void main(String[] args) {
            StringBuffer sb = new StringBuffer("maimmaim");
            System.out.println(replaceAll(sb, "maim", "mai"));
        }
      

  3.   


    int index = -1;
    while((index =str.indexOf(str1)) != -1) {

    Str = Str.replace(index,str1.length(),str2); }
    System.out.println("替换后的短文为:" + Str);之前还写了个
    StringBuffer Str = new StringBuffer(str);   因为是自己看的书,不知道这样写对了没…
    运行能够通过,但替换后的短文总不能输出。
      

  4.   

    如果用StringBuffer,这位兄弟的就好!可以转换为String,用replaceAll。
      

  5.   

    帮忙看看我的错在哪里?
    初学,第一次用StringBuffer…
      

  6.   

    String str,str1,str2;
    Scanner in = new Scanner(System.in);
    System.out.println("输入一段短文:");
    str = in.nextLine();
    System.out.println("你输入的短文为:" + str);
    StringBuffer Str = new StringBuffer(str);  

    System.out.println("输入一个原单词:");
    str1 = in.nextLine();
    System.out.println("输入一个新单词:");
    str2 = in.nextLine();


    int index = -1;
    while((index =str.indexOf(str1)) != -1) {

    Str = Str.replace(index,str1.length(),str2);
    }
    System.out.println("替换后的短文为:" + Str);
    }我知道肯定写得很垃圾,大家温柔点哈…  
    运行能够通过,但替换后的短文总不能输出。帮忙看看错在哪里?
      

  7.   


    while((index =str.indexOf(str1)) != -1) {//这个循环条件有问题,下面是个死循环Str = Str.replace(index,str1.length(),str2);
    }
      

  8.   


    while((index =Str.indexOf(str1)) != -1) { Str = Str.replace(index,index+str1.length(),str2);    
    }把小写的str改成大写的Str
      

  9.   


    while((index =Str.indexOf(str1)) != -1) { Str = Str.replace(index,index+str1.length(),str2);    
    }
      

  10.   


    Str = Str.replace(index,index + str1.length(),str2);//问题在这句,这个我改后的,看看,和你的区别
      

  11.   

    StringBuffer的replace方法,第一个参数是开始位置start,第二个参数是结束位置!所以,用你那样写,就有问题,我改成上面的了,就没问题了!
      

  12.   

    你那样写,会有一个问题,start>end!
      

  13.   


    把小写的str改成大写的Str  又是个粗心的地方……总之,谢谢楼上诸位的解答了!
      

  14.   


    能把“I am Jam,and he is James;Jam is his name,is not my name!”中的单词"Jam"替换成"me"吗?