2分で理解!Javaで文字列を置換するreplaceFirst,replaceAll【Stringクラス】

文字列置換
  • このエントリーをはてなブックマークに追加
  • Pocket

Javaで文字列を置換するには、StringクラスのreplaceFirstもしくはreplaceAllを使うのがいい。

このページではreplaceFirts、replaceAllそれぞれの使い方とサンプルプログラムをご紹介する。

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

replaceFirstメソッド

replaceFirst( String regrex , String replacement )

regrex:置換前の文字列 replacement:置換後の文字列

戻り値の型

String

内容

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

replaceFirst(String regrex, String replacement)は、文字列にregrexと一致するものがあった場合、最初に一致したもののみreplacementに置き換えて値を返すメソッドだ。

サンプルコード

サンプルコードは簡単だが、次の通りだ。

実行結果

サンプルコードの説明

  • [1] String型の変数messageを初期化。
  • [2] replaceFirstメソッドを使用してmessageに代入されている"ABCABCABCABCABC"の中で最初に出現するAをYYYに置き換え、変数resultに代入。
  • [3] 変数resultを出力。

このように最初に一致した部分のみが変更される。

該当した文字列すべてを置換する(replaceAll)

replaceAll(String regrex , String replacement)

regrex:置換前の文字列 replacement:置換後の文字列

戻り値の型

String

内容

指定した正規表現に一致する部分を、指定した文字列で置き換える。

replaceAll(String regrex, String replacement)は、文字列にregrexと一致するものがあった場合すべてreplacementに置き換えて値を返すメソッドだ。

サンプルコード

実行結果

サンプルコードの説明

  • [1] String型の変数messageを初期化。
  • [2] replaceAllメソッドを使用してmessageに代入されている"ABCABCABCABCABC"の中に出現するAをすべてYYYに置き換え、変数resultに代入。
  • [3] 変数resultを出力。

注意点:置換前は「正規表現」

上では置換前・置換後と書けば動くようにお伝えしたが、厳密には違う。

replaceFirst,replaceAllともに注意したいのが、置換するときの検索文字列String regrexは正規表現を扱うものだということだ。regrexなので当たり前なのだが。

「○○に一致する」という複雑な条件を設定できる一方、単なる文字として一致させようとしたものが正規表現の特殊な意味ととられてしまい、意図したものとちがう動きをする場合がある。

サンプルコード

実行結果

サンプルコードの説明

  • [1] String型の変数messageを初期化。
  • [2] replaceAllメソッドを使用してmessageに代入されている" A.B.C.D "の中に出現するドット(.)をエスケープなしで1に置き換え、変数result1に代入。
  • [3] 変数result1を出力→ エスケープされていないのでドットは単なる文字ではなく
  • 正規表現で意味するすべての文字を表すドットと解釈される。そのため、" A.B.C.D "すべて1に置き換わる。
  • [4] replaceAllメソッドを使用してmessageに代入されている" A.B.C.D "の中に出現するドット(.)をエスケープして1に置き換え、変数result2に代入。
  • [5] 変数result2を出力 → \\でエスケープすることで、ドットは単なる文字のドットと解釈され、" A.B.C.D "のドットの部分のみ1に置き換わる。

まとめ

このページではJavaで文字列を置換するための方法についてお伝えした。

  • 最初のひとつだけ:replaceFirst
  • すべて置換:replaceAll

この二つのStringクラスメソッドを使い分ければ実行可能だ。

  • このエントリーをはてなブックマークに追加
  • Pocket

このページの続きや関連ページは下記から一覧で確認できる。

短期間でエンジニアになる方法

・「まったくの初心者だけどエンジニアになりたい!」

・「プログラマーとして転職をしたい!」

という方はリナックスアカデミーの資料を見てみてください。短期間で未経験からエンジニアになることができるスクールとして15年間選ばれ続けてきた理由やノウハウが載った資料です。

エンジニアの入り口に立つために必要な勉強技術の最新動向本当に使えるIT資格学習に役立つ国からの奨励金などの情報が詰まっています。

無料で2,3日中にお手元にお届けします。


資料を見てみる

SNSでもご購読できます。

コメントを残す

*