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一次(或以最有效的方式)替换字符串中的多个不同子字符串...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python中set函数作用如何自己用代
- 下一篇: python代码变成运行程序_pytho