ホームページ >Java >&#&チュートリアル >Java 文字列内の複数の部分文字列を効率的に置換するにはどうすればよいですか?
Java での効率的な文字列置換
文字列内の複数の部分文字列を効率的に置換することは、プログラミングにおける一般的なタスクです。各置換に String.replace() を使用する総当り的なアプローチは簡単ですが、特に大きな文字列の場合や多数の置換を扱う場合には非効率的になる可能性があります。
正規表現を使用した部分文字列の置換
より効率的な解決策には、正規表現の使用が含まれます。必要なすべての部分文字列置換に一致するパターンをコンパイルすることで、複数の部分文字列を一度に置換できます。
次のコード例を考えてみましょう。これは、正規表現を使用してテンプレート文字列内のマップからトークンを置換します。
<code class="java">import java.util.HashMap; import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; ... // Tokens to replace Map<String, String> tokens = new HashMap<>(); tokens.put("cat", "Garfield"); tokens.put("beverage", "coffee"); // Template string with tokens String template = "%cat% really needs some %beverage%."; // Create pattern to match tokens String patternString = "%(" + StringUtils.join(tokens.keySet(), "|") + ")%"; Pattern pattern = Pattern.compile(patternString); Matcher matcher = pattern.matcher(template); // Replace tokens using Matcher StringBuffer sb = new StringBuffer(); while (matcher.find()) { matcher.appendReplacement(sb, tokens.get(matcher.group(1))); } matcher.appendTail(sb); System.out.println(sb.toString()); // Prints the replaced string</code>
正規表現を使用すると、特に大規模または複雑な入力文字列の場合、複数の部分文字列の置換の効率を大幅に向上させることができます。
以上がJava 文字列内の複数の部分文字列を効率的に置換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。