小编典典

如果你要处理的字符串很长,或者你要处理许多字符串,那么使用java.util.regex.Matcher可能是值得的(这需要花很长时间进行编译,因此效率不高) (如果你的输入很小或搜索模式经常更改)。

以下是一个完整的示例,基于从地图中获取的令牌列表。(使用来自Apache Commons Lang的StringUtils)。

Map tokens = new HashMap();

tokens.put("cat", "Garfield");

tokens.put("beverage", "coffee");

String template = "%cat% really needs some %beverage%.";

// Create pattern of the format "%(cat|beverage)%"

String patternString = "%(" + StringUtils.join(tokens.keySet(), "|") + ")%";

Pattern pattern = Pattern.compile(patternString);

Matcher matcher = pattern.matcher(template);

StringBuffer sb = new StringBuffer();

while(matcher.find()) {

matcher.appendReplacement(sb, tokens.get(matcher.group(1)));

}

matcher.appendTail(sb);

System.out.println(sb.toString());

编译正则表达式后,通常会很快扫描输入字符串(尽管如果你的正则表达式很复杂或涉及回溯,那么你仍然需要进行基准测试以确认这一点!)

2020-03-10

java 替换多个字符串_Java一次(或以最有效的方式)替换字符串中的多个不同子字符串...相关推荐

  1. Java字符串中最长回文子字符串

    Longest palindrome substring in a string is a very common java interview question. To find out the l ...

  2. 找出两个字符串中最长的相同子字符串

    //找出两个字符串中最长的相同子字符串public class Stringdemo {public static void main(String[] args) {String str1 = ne ...

  3. java反射获取实体类_java 反射获取类对象的三种方式

    Java反射经常用到的就是获取对象中的属性,那么Java获取类对象就是必不可少的啦! Java实体类: public class ReflexModel { private String code; ...

  4. java 连接mongodb 集群_Java 连接MongoDB集群的几种方式

    先决条件 先运行mongodb肯定是必须的,然后导入以下包: import com.mongodb.MongoClient; import com.mongodb.MongoClientURI; im ...

  5. java如何显示当天世界_Java学习笔记——显示当前日期的三种方式

    一.Date类:这是一种过时的表达方式 import java.util.Date;Date date = new Date(); System.out.println((1900+date.getY ...

  6. Java 如何判断一个字符串中是否包含某一 子字符串

    对于以上问题的解决,我一般使用String.indexOf("子串")的方式解决,  请看代码: public class IndexOfTest {public static v ...

  7. java自定义拦截所有请求_Java实现拦截HTTP请求的几种方式

    在Java的服务端开发当中,拦截器是很常见的业务场景,这里对Java开发当中几种常见的拦截器的实现方式进行记录和分析.案例说明基于Spring Boot环境. 一:实现javax.servlet.Fi ...

  8. java set去重复元素_java List去掉重复元素的几种方式

    使用LinkedHashSet删除arraylist中的重复数据(有序) List words= Arrays.asList("a","b","b&q ...

  9. java list 去重复元素_java List去掉重复元素的几种方式

    使用LinkedHashSet删除arraylist中的重复数据(有序) List words= Arrays.asList("a","b","b&q ...

最新文章

  1. ListView 添加头部 和尾部 布局 (addHeaderView 和 addFooterView)
  2. MVC3项目依赖文件错误解决
  3. linux下C/C++编译时系统搜索 include 和 链接库 文件路径的指定
  4. 新手教程:用像素游戏制作大师MV开发游戏(一)
  5. 《梦断代码》阅读笔记之第8章至最后
  6. 好了好久时间,终于写成了第一个Python代码
  7. 求链表是否有环和第一个交点
  8. 如何打造7*24h持续交付通道?阿里高级技术专家的5点思考
  9. MybatisPlus
  10. python做excel数据分析统计服_怎样用 Excel 做数据分析?
  11. 3GPP LTE/NR信道模型
  12. 人脸检测进阶:使用 dlib、OpenCV 和 Python 检测眼睛、鼻子、嘴唇和下巴等面部五官
  13. PDF怎么编辑,如何裁剪PDF其中一页
  14. java如何获取storage_本地化存储Storage
  15. 梯度裁剪Grandient Clipping
  16. 自定义maven archetype,上传到nexus,并使用nexus远程的archetype创建项目
  17. 汉源高科2个万兆光口16个千兆光口工业级以太网交换机机架式光纤自愈环网以太网交换机
  18. 2018千峰PHP教程完整版
  19. vscode的搜索技巧
  20. Word 论文插入图/表目录

热门文章

  1. TCP程序流程及服务器客户端
  2. 键盘接口和七段数码管的控制实验
  3. Linux无法连接远程仓库,ssh无法连接到远端Ubuntu的解决方法
  4. ikbc机械键盘打字出现重复_超小无线机械键盘,绝佳移动打字体验
  5. 从前,有只小仙女叫...
  6. 人工智能大地图之分布式人工智能篇
  7. 为Spring Cloud Ribbon配置请求重试(Camden.SR2+)
  8. 最新天猫Java面试题(含总结):线程池+并发编程+分布式设计+中间件
  9. 论文小综 | 文档级关系抽取方法(下)
  10. 论文小综 | Pre-training on Graphs