我有两个字符串A=“abcd000def000cde000”,B="111"
把A中的所有“000”换成B的“111”
请不要用replaceall来完成,能帮我自己写个函数吗,非常的感谢,我很急。

解决方案 »

  1.   

    以下是我的代码,供参考:package com.lrl.test;/**
     * 函数replaceString即完成此功能 
     * s1代表要替换的字符串,str代表s1中要替换的字符串,s2代表要被替换成的字符串
     * @author lrl
     * 
     */public class Replace { public String replaceString(String s1, String str, String s2) {
    StringBuffer sb = new StringBuffer();
    while (s1.indexOf(str) >= 0) {
    int first = s1.indexOf(str);
    sb.append(s1.substring(0, first));
    sb.append(s2);
    s1 = s1.substring(first + str.length());
    } return sb.toString();
    } public static void main(String[] args) {
    String s = new Replace().replaceString("abcd000def000cde000", "000", "111");
    System.out.println(s);
    }}
      

  2.   

    程序运行结果:abcd111def111cde111
      

  3.   

           while(A.indexOf("000") != -1){

    A = A.substring(0, A.indexOf("000"))+"111"+A.substring(A.indexOf("000")+3,A.length());
    } 这样算不算合格??
      

  4.   


    public static void main(String[] args) {
    String A="abcd000def000cde000",B="111" ;

    while(A.indexOf("000") != -1){

    A = A.substring(0, A.indexOf("000"))+B+A.substring(A.indexOf("000")+3,A.length());

    }
      

  5.   

    因为String拥有不可变性,不可变带来的好处是可以共享,所以不能把字符串A中的000都替换成111,但是可以生成一个新的字符串String A = "abcd000def000cde000", B = "111";
    A = A.replaceAll("000", "111");
    System.out.println(A);
      

  6.   

    public class Replace{
    public static void main(String args[]){
    String A="abcd000def000cde000";
    String M=null;
    char s[]=A.toCharArray();
    for(int i=0;i<A.length();i++){
    if(s[i]=='0'){
    s[i]='1';
       }
    }
    M=String.valueOf(s);
    System.out.println(M);
      }
    }
      

  7.   


    [code=Java]
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;public class Test {    public static void main(String[] args) {
       
            String begin = "abcd000def000cde000";
            
            Pattern pattern = Pattern.compile("[0]{3}");
            Matcher m = pattern.matcher(begin);
            
            StringBuffer newStr = new StringBuffer();
            while(m.find()){
                m.appendReplacement(newStr,"111");//实现非终端添加和替换步骤
            }
            m.appendTail(newStr);//实现终端添加和替换步骤。
            System.out.println(newStr.toString());
        }
    }今天问这道题的这么多人呢,是不是你们几个去同一家公司面试了,这道题也不难啊。
    [/code]