栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

一次替换多个子字符串

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

一次替换多个子字符串

这是您的Python建议如何转换为Java的方式:

Map<String, String> replacements = new HashMap<String, String>() {{    put("substr1", "repl1");    put("substr2", "repl2");    put("substr3", "repl3");}};String input = "lorem substr1 ipsum substr2 dolor substr3 amet";// create the pattern joining the keys with '|'String regexp = "substr1|substr2|substr3";StringBuffer sb = new StringBuffer();Pattern p = Pattern.compile(regexp);Matcher m = p.matcher(input);while (m.find())    m.appendReplacement(sb, replacements.get(m.group()));m.appendTail(sb);System.out.println(sb.toString());   // lorem repl1 ipsum repl2 dolor repl3 amet

这种方法可以 同时 (即“一次”)进行替换。即,如果您碰巧有

"a" -> "b""b" -> "c"

那么这种方法会给出

"a b" -> "b c"
与答案相反的答案,提示您应该将多个呼叫链接到
replace
replaceAll
会给出答案
"cc"


(如果您一般化此方法以编程方式创建正则表达式,请确保您

Pattern.quote
每个单独的搜索词和
Matcher.quoteReplacement
每个替换词。)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/496129.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号