最初に該当した文字列を置換する(replaceFirst)

広告

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

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

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

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

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

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

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

上記の結果、文字列「str」には「今日の天気は雨でした。明日の天気は晴れです。」が格納されます。「晴れ」は対象の文字列の中に2回出現しますが、「replaceFirst」メソッドの場合は最初に一致した文字列だけが置換の対象となります。

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

サンプルプログラム

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

testString6.java

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

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

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

p6

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)