該当する全ての文字列を置換する(replaceAll)

広告

文字列に対して指定したパターンに一致する部分を全て他の文字で置き換えます。「replaceAll」メソッドを使います。

指定された正規表現に一致する、この文字列の各部分文字列に対し、指定された置換を実行します。

このフォームのメソッド呼び出し str.replaceAll(regex, repl) では、次の式と正確に同じ結果が
得られます。 

  Pattern.compile(regex).matcher(str).replaceAll(repl)

パラメータ:
  regex - この文字列との一致を判定する正規表現 
戻り値:
  結果として得られる String 
例外: 
  PatternSyntaxException - 正規表現の構文が無効な場合

例えば「今日の天気は晴れでした。明日の天気は晴れです。」と言う文字列に対して、「晴れ」を「雨」に変換する場合は次のようになります。

String str = "今日の天気は晴れでした。明日の天気は晴れです。";
str = str.replaceAll("晴れ", "雨");

上記の結果、文字列「str」には「今日の天気は雨でした。明日の天気は雨です。」が格納されます。「晴れ」は対象の文字列の中に2回出現しますが、全てが置換の対象となります。

置換する対象の文字列には固定の文字列だけではなく正規表現を使ってより柔軟な指定が可能です。

サンプルプログラム

では実際に試してみましょう。

testString7.java

class testString7{
  public static void main(String args[]){
    String str = "今日の天気は晴れでした。明日の天気は晴れです。";
    System.out.println("変換前:");
    System.out.println(str);

    str = str.replaceAll("晴れ", "雨");
    System.out.println("変換後:");
    System.out.println(str);
  }
}

上記を実際にコンパイルして実行してみると下記のようになります。

p7

( Written by Tatsuo Ikura )