先记录第一个133的位置
然后把字符串截取后部分
然后用replaceAll这个函数替换掉后面的12
最后再合并
效率吗
用StringBuffer
这样效率会提高,否则就是算法上的问题了

解决方案 »

  1.   

    import java.util.regex.*;
    ...
    Pattern p=Pattern.compile("133[0-9]{9}");
    Matcher m=p.matcher(str);
    System.out.println(m.replaceAll("XXXXXXXXXXXX"));
      

  2.   


    从文件里读移行就替换一行,也就马上把这行写回到另外一个文件里,效率很快的。如果只是一般的使用,用Editplus就可以进行正则表达式替换了,不用自己写程序。
      

  3.   

    你的信誉很低啊,不过我还是给你答案,用正则表达式:
    运行一下这个程序:import java.util.regex.*;public class ReplaceTel{
    public static void main(String[] args) throws Exception{
    Pattern p = Pattern.compile("133[0-9]{9}");
    Matcher m = p.matcher("you tel is : 133312399249;but my is 133472155555");
    String result = m.replaceAll("XXXXXXXXXXXX")
    System.out.println(result);
    }
    }