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う
}
}
指定した文字や空白を削除する(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桁を意味する正規表現です。
正規表現で最初の文字を置き換える(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--
}
}
関連の記事