Java replace 文字列を置換するサンプル

Javaのreplaceメソッドで文字列を置換するサンプルです。

目次

サンプル replaceとは
  文字列を置き換える(replace)
  指定した文字や空白を削除する(replace)
  正規表現で全ての文字を置き換える(replaceAll)
  正規表現で最初の文字を置き換える(replaceFirst)

replaceとは

public String replace(CharSequence target, CharSequence replacement)
public String replace(char oldChar, char newChar)
  • 1つめの引数の文字列を2つめの引数の文字列に置き換えます。
  • 引数はCharSequenceですが、String型を指定できます。StringクラスはCharSequenceインターフェースを実装しているためです。
  • replaceメソッドの引数がchar型の場合、指定した1文字を別の1文字に全て置き換えます。
  • 戻り値はString型です。

文字列を置き換える(replace)

package test1;

public class Test1 {
	public static void main(String[] args) {

		String str1 = "あいうーあいう";
		
		//2つめの引数が1文字
		System.out.println(str1.replace("あ", "A")); // AいうーAいう
		System.out.println(str1.replace("あい", "A")); // AうーAう
		
		//2つめの引数が複数文字
		System.out.println(str1.replace("あ", "AB")); // ABいうーABいう
		System.out.println(str1.replace("あい", "AB")); // ABうーABう
	}
}

https://docs.oracle.com/javase/jp/8/docs/api/java/lang/String.html#replace-java.lang.CharSequence-java.lang.CharSequence-

 

指定した文字や空白を削除する(replace)

replaceの2つめの引数に空文字を指定することで文字の削除に使用できます。

package test1;
 
public class Test1 {
	public static void main(String[] args) {
 
		// 指定の文字(う)を削除する
		String str1 = "あいうえお";
		System.out.println(str1.replace("う", "")); // あいえお
		
		// 半角空白を削除する(△あ△い△う△ +1△△)
		String str2 = " あ い う +1  ";
		System.out.println(str2.replace(" ", "")); // あいう+1
	}
}

 

正規表現で全ての文字を置き換える(replaceAll)

public String replaceAll(String regex,String replacement)

replaceAllは、正規表現を使用できます。

package test1;

public class Test1 {
	public static void main(String[] args) {

		String str1 = "あいうーあいう";
		String re1 = "[あう]"; //正規表現 「あ」または「う」
		System.out.println(str1.replaceAll(re1, "a")); // aいaーaいa

		String str2 = "--12345--";
		String re2 = "[0-9]{5}"; //正規表現 0から9の5桁
		System.out.println(str2.replaceAll(re2, "*****")); // --*****--
		
		String str3 = "--123451--"; //数値が6桁
		String re3 = "[0-9]{5}";
		System.out.println(str3.replaceAll(re3, "*****")); // --*****1--
		
		String str4 = "--1234512345--";
		String re4 = "[0-9]{5}"; //replaceAllのため2回マッチするので注意
		System.out.println(str4.replaceAll(re4,"*****"));//--**********--
	}
}

[あう]は、「あ」または「う」を意味する正規表現です。
[0-9]{5}は、数値0から9の5桁を意味する正規表現です。

https://docs.oracle.com/javase/jp/8/docs/api/java/lang/String.html#replaceAll-java.lang.String-java.lang.String-

正規表現で最初の文字を置き換える(replaceFirst)

public String replaceFirst(String regex,String replacement)

replaceFirstは、一致した最初の文字を置き換えます。正規表現を使用できます。

package test1;
 
public class Test1 {
	public static void main(String[] args) {
 
		String str1 = "あいうーあいう";
		System.out.println(str1.replaceFirst("い","b"));//あbうーあいう
		
		String str4 = "--1234512345--";
		String re4 = "[0-9]{5}"; //replaceFirstは最初のマッチのみ置換する
		System.out.println(str4.replaceFirst(re4, "*****"));//--*****12345--
	}
}

https://docs.oracle.com/javase/jp/8/docs/api/java/lang/String.html#replaceFirst-java.lang.String-java.lang.String-

関連の記事

Java substring 文字列を切り出す
Java split 文字列を分割して配列にする
Java 文字列の位置を取得(indexOf/lastIndexOf)

△上に戻る