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

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

IT講師に興味はありませんか?

・「今までIT講師をやってきたが、更に多くの講義を行いたい」

・「エンジニアとしてやってきたが講師業に魅力を感じている」

・「講師として活躍するためにベースとなる知識を知りたい」

・「様々な分野や言語の講師にチャレンジしてみたい」


という方はぜひIT講師募集のページをご覧ください。


リスキルテクノロジーでは「受講している方々にITを好きになってもらう」ことを目標に、同じ目標に向かって歩んで行ける講師の方を常に探しています。


システム開発やインフラ構築などのエンジニアリング経験を活かし、新入社員などの未経験者や経験の浅い初学者の方々に対してITトレーニングを行っていただくことになります。


テキストやカリキュラムは事前に用意されており、それらを元に講義を進めていくため、IT講師をはじめて実施する方でも安心してトレーニングを実施できます。


IT講師募集のページを見る

SNSでもご購読できます。

コメントを残す

*

未経験からの育成制度も充実
IT講師に興味はありませんか?

リスキルテクノロジーでIT講師の積極募集を開始! 経験・未経験問わずご応募可能。育成制度で講師スキル向上も目指せます

IT講師に応募する