プログラミング勉強日記
2020年12月7日
文字列を置換するときにはreplaceメソッド、replaceAllメソッド、replaceFirstメソッドを使うが、それぞれの使い方をまとめる。
replaceメソッド
replaceメソッドは対象の文字列から第1引数で指定した文字列を検索して、一致した文字列を第2引数で指定した文字列で置換する。置換後の文字列を戻り値として返す。
対象の文字列.replace(置換される文字列, 置換する文字列)
replaceメソッドのサンプルコード
String str1 = "abc123abc123";
String str2 = str1.replace("abc", "0");
System.out.println(str2);
01230123
replaceAllメソッド
正規表現を使う場合にreplaceAllメソッドを使う。replaceAllメソッドは対象の文字列から第1引数で指定した正規表現のパターンで文字列を検索して、一致した文字列を第2引数で指定した文字列で置換する。置換後の文字列を戻り値として返す。
正規表現についてはこちらの記事で詳しく扱っている。
対象の文字列.replaceAll(正規表現, 置換する文字列)
replaceAllメソッドのサンプルコード
String str3 = "abc123abc123";
// "[a-z]+" : 小文字のアルファベット
String str4 = str3.replaceAll("[a-z]+", "0");
System.out.println(str4);
01230123
replaceFirstメソッド
replaceFirstメソッドは対象の文字列の中から最初に一致した文字列だけを置換する。対象の文字列から第1引数で指定した正規表現のアターンで文字列を検索して、最初に一致した文字列のみを第2引数で指定した文字列で置換する。置換後の文字列を戻り値として返す。
対象の文字列.replaceFirst(正規表現, 置換する文字列)
replaceFirstメソッドのサンプルコード
String str5 = "abc123abc123";
// "[a-z]+" : 小文字のアルファベット
String str6 = str5.replaceFirst("[a-z]+", "0");
System.out.println(str6);
0123abc123
まとめ
Javaで文字列を置換する方法を紹介した。
- replaceメソッドは正規表現を使わない
- replaceAllメソッドとreplaceFirstメソッドは正規表現を使う
- すべて置換する場合はreplaceAllメソッドを使う
- 最初の1つだけ置換する場合はreplaceFirstメソッドを使う
参考文献
2分で理解!Javaで文字列を置換するreplaceFirst,replaceAll【Stringクラス】
Javaで文字列を置換する:replace(), replaceAll(), replaceFirst()