String.replaceAll
は、Matcher.replaceAll
の単なる便利な方法です。 Matcher
は、Javaで正規表現を使用する「実際の」方法であり、さらに洗練された使用例が可能です。
また、String
の正規表現メソッドで実行できるものは、Matcher
の同様のメソッドで行うことができます。 Matcher
sは任意CharSequence
(StringBuilder
、StringBuffer
、String
とCharBuffer
によって実装されるインターフェース)のために得ることができる。美しさは、単にString
S以上でそのMatcher
の仕事です。だからあなたは簡単にすることができます:
import java.util.regex.*;
...
StringBuilder sb = new StringBuilder();
sb.append("This works with StringBuffers");
Pattern p = Pattern.compile("\\Buffer\\B");
Matcher m = p.matcher(sb);
System.out.println(m.replaceAll("uilder"));
出力されますThis works with StringBuilders
。
Working demo.
文字列に変換して置き換え(必要に応じて変換)することは重要ではありませんか? – Dukeling
'Matcher'(任意の' CharSequence'で作成できます)を作成し、 'appendReplacement'と' appendTail'を使って独自の 'replaceAll'を書くループを書くことができます。 –
はい、しかし、それはStringBufferを使用しています... – h22