网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.sqrt 方法.
.新手入门:J2EE学习经验和流程.
.Java 正则表达式之从入门到精通.
.对JAVA的多线程浅析.
.MascotWorld例子:创建一个场景,.
.电信网管中的Java客户端(二).
.if...else 语句.
.JPA重整ORM山河.
.改写equals的时候遵守约定.
.Java SE 6 Beta&.
.AOP中的主要技术(二).
.Struts用户和开发指南(前言之三.
.getMinutes 方法.
.利用JAVA语言实现支持视频点播的.
.等待窗体的一种实现.
.JDK安装.
.Java学习:线程池的简单构建.
.用java实现人工智能中的A*算法求.
.跨越与整合 CORBA技术探索起步.
.Eclipse In Action1.3.

关于java.util.regex包中新增字符替换方法的比较

发表日期:2008-1-5



  代码如下:
  import Java.util.regex.*;
  
  public class regex {
  
   public regex() {
  
   }
  
   public static String replaceByRegex (String input,String toChg,String chgTo) {
  
    StringBuffer sb = null;
  
    if (input==nullinput.length()==0) return input;
  
    if (toChg==nulltoChg.length()==0) return input;
  
    Pattern chagePattern = Pattern.compile(toChg);
  
    Matcher inputMatcher = chagePattern.matcher(input);
  
    sb = new StringBuffer();
  
    while (inputMatcher.find()) {
  
     inputMatcher.appendReplacement(sb,chgTo);
  
    }
  
    inputMatcher.appendTail(sb);
  
    return sb.toString();
  
   }
  
   public static String replaceByStringBuffer(String _old,String _str,String _new)
  
   {
  
    if (_old==null) {return null;}
  
    StringBuffer _temp=new StringBuffer();
  
    int i=0;
  
    int j=0;
  
     while((j=_old.indexOf(_str,0))!=-1)
  
     {
  
      _temp.append(_old.substring(0,j)+_new);
  
      _old=_old.substring(j+_str.length());
  
     }
  
    _temp.append( _old);
  
    return _temp.toString();
  
    }
  
    public static String replaceByString(String _old,String _str,String _new)
  
    {
  
     if (_old==null) {return null;}
  
     String _temp="";
  
     int i=0;
  
     int j=0;
  
      while((j=_old.indexOf(_str,0))!=-1)
  
      {
  
       _temp+=_old.substring(0,j)+_new;
  
       _old=_old.substring(j+_str.length());
  
      }
  
     _temp+=_old;
  
     return _temp;
  
   }
  
   public static void main(String[] args) throws Throwable {
  
    String tmp = "the the ii bb ttisc hisadf. oeoflaksdjflkjeivnlaskdfjiieiah";
  
    long t = System.currentTimeMillis();
  
    for (int i=0;i<100000;i++,regex.replaceByStringBuffer(tmp,"i","WW"));
  
    System.out.println("replace it by string buffer :"+(System.currentTimeMillis()-t));
  
    t = System.currentTimeMillis();
  
    for (int i=0;i<100000;i++,regex.replaceByString(tmp,"i","WW"));
  
    System.out.println("replace it by string :"+(System.currentTimeMillis()-t));
  
    t = System.currentTimeMillis();
  
    for (int i=0;i<100000;i++,regex.replaceByRegex(tmp,"i","WW"));
  
    System.out.println("replace it by regex :"+(System.currentTimeMillis()-t));
  
   }
  
  }
  
  测试结果:
  replace it by string buffer :2443
  
  replace it by string :3305
  
  replace it by regex :4226
  
  可见,
上一篇:JNDI简介,jndi在tomcat中的配置,jdbc api简介,java连接数据库服务 人气:1535
下一篇:实 现JAVA 的 动 态 类 载 入 机 制 人气:580
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐