java 替换多个字符串_Java一次(或以最有效的方式)替换字符串中的多个不同子字符串...
小编典典
如果你要处理的字符串很长,或者你要处理许多字符串,那么使用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一次(或以最有效的方式)替换字符串中的多个不同子字符串...相关推荐
- Java字符串中最长回文子字符串
Longest palindrome substring in a string is a very common java interview question. To find out the l ...
- 找出两个字符串中最长的相同子字符串
//找出两个字符串中最长的相同子字符串public class Stringdemo {public static void main(String[] args) {String str1 = ne ...
- java反射获取实体类_java 反射获取类对象的三种方式
Java反射经常用到的就是获取对象中的属性,那么Java获取类对象就是必不可少的啦! Java实体类: public class ReflexModel { private String code; ...
- java 连接mongodb 集群_Java 连接MongoDB集群的几种方式
先决条件 先运行mongodb肯定是必须的,然后导入以下包: import com.mongodb.MongoClient; import com.mongodb.MongoClientURI; im ...
- java如何显示当天世界_Java学习笔记——显示当前日期的三种方式
一.Date类:这是一种过时的表达方式 import java.util.Date;Date date = new Date(); System.out.println((1900+date.getY ...
- Java 如何判断一个字符串中是否包含某一 子字符串
对于以上问题的解决,我一般使用String.indexOf("子串")的方式解决, 请看代码: public class IndexOfTest {public static v ...
- java自定义拦截所有请求_Java实现拦截HTTP请求的几种方式
在Java的服务端开发当中,拦截器是很常见的业务场景,这里对Java开发当中几种常见的拦截器的实现方式进行记录和分析.案例说明基于Spring Boot环境. 一:实现javax.servlet.Fi ...
- java set去重复元素_java List去掉重复元素的几种方式
使用LinkedHashSet删除arraylist中的重复数据(有序) List words= Arrays.asList("a","b","b&q ...
- java list 去重复元素_java List去掉重复元素的几种方式
使用LinkedHashSet删除arraylist中的重复数据(有序) List words= Arrays.asList("a","b","b&q ...
最新文章
- ListView 添加头部 和尾部 布局 (addHeaderView 和 addFooterView)
- MVC3项目依赖文件错误解决
- linux下C/C++编译时系统搜索 include 和 链接库 文件路径的指定
- 新手教程:用像素游戏制作大师MV开发游戏(一)
- 《梦断代码》阅读笔记之第8章至最后
- 好了好久时间,终于写成了第一个Python代码
- 求链表是否有环和第一个交点
- 如何打造7*24h持续交付通道?阿里高级技术专家的5点思考
- MybatisPlus
- python做excel数据分析统计服_怎样用 Excel 做数据分析?
- 3GPP LTE/NR信道模型
- 人脸检测进阶:使用 dlib、OpenCV 和 Python 检测眼睛、鼻子、嘴唇和下巴等面部五官
- PDF怎么编辑,如何裁剪PDF其中一页
- java如何获取storage_本地化存储Storage
- 梯度裁剪Grandient Clipping
- 自定义maven archetype,上传到nexus,并使用nexus远程的archetype创建项目
- 汉源高科2个万兆光口16个千兆光口工业级以太网交换机机架式光纤自愈环网以太网交换机
- 2018千峰PHP教程完整版
- vscode的搜索技巧
- Word 论文插入图/表目录
热门文章
- TCP程序流程及服务器客户端
- 键盘接口和七段数码管的控制实验
- Linux无法连接远程仓库,ssh无法连接到远端Ubuntu的解决方法
- ikbc机械键盘打字出现重复_超小无线机械键盘,绝佳移动打字体验
- 从前,有只小仙女叫...
- 人工智能大地图之分布式人工智能篇
- 为Spring Cloud Ribbon配置请求重试(Camden.SR2+)
- 最新天猫Java面试题(含总结):线程池+并发编程+分布式设计+中间件
- 论文小综 | 文档级关系抽取方法(下)
- 论文小综 | Pre-training on Graphs