首頁 > Java > java教程 > 主體

如何高效替換Java字串中的多個子字串?

Linda Hamilton
發布: 2024-11-05 06:42:02
原創
867 人瀏覽過

How Can I Efficiently Replace Multiple Substrings in a Java String?

在Java 中高效替換字串中的多個子字串

當需要替換字串中的多個子字串時,很容易訴諸重複應用string.replace() 方法的強力方法。但是,對於大型字串或處理大量字串時,這可能效率低下。

利用正規表示式

更有效的解決方案涉及利用正規表示式。正規表示式可讓您定義複雜的搜尋模式並在單一操作中執行文字轉換。

範例用法

考慮一個場景,您想要替換諸如“”之類的標記�t%”和“�verage%”,其值儲存在地圖中。對應的值:

<code class="java">Map<String,String> 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);</code>
登入後複製

正規表示式的好處
<code class="java">StringBuffer sb = new StringBuffer();
while(matcher.find()) {
    matcher.appendReplacement(sb, tokens.get(matcher.group(1)));
}
matcher.appendTail(sb);

System.out.println(sb.toString());</code>
登入後複製

編譯正規表示式後,搜尋輸入字串通常非常快速。靈活地處理複雜的搜尋模式,例如涉及括號和量詞的搜尋模式。

以上是如何高效替換Java字串中的多個子字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!