Java の文字列を特定の文字で置換する「replace()」の使い方
新人
「Java で文字列の一部を別の文字に置き換える方法はありますか?」
先輩
「Java には replace() メソッドがあるよ。これを使えば、特定の文字を別の文字に簡単に変えることができるんだ。」
新人
「具体的にはどうやって使うんですか?」
先輩
「それじゃあ、基本的な使い方を見ていこう!」
1. replace() メソッドとは?(基本的な説明)
replace() メソッドは、文字列の中にある特定の文字や単語を別のものに置き換えるためのメソッドです。
replace() メソッドの特徴
- 第一引数に置換したい文字、第二引数に置換後の文字を指定する
- すべての一致する文字列を置き換える
- 元の文字列は変更されず、新しい文字列が返される
例えば、文章の中の特定の単語を他の単語に変更したいときに便利です。
2. replace() を使った基本的な文字列の置換
実際に replace() メソッドを使って文字列を置き換える方法を見てみましょう。
文字を置換する
public class ReplaceExample {
public static void main(String[] args) {
String text = "こんにちは、世界!";
String replacedText = text.replace("世界", "Java");
System.out.println("元の文字列: " + text);
System.out.println("置換後の文字列: " + replacedText);
}
}
元の文字列: こんにちは、世界!
置換後の文字列: こんにちは、Java!
コードの解説
String text = "こんにちは、世界!";… 置換前の文字列を用意text.replace("世界", "Java");… "世界" を "Java" に置き換えるSystem.out.println(replacedText);… 置換後の文字列を出力
このように、replace() メソッドを使えば簡単に特定の単語を別のものに置き換えることができます。
3. replace() を使った大文字・小文字の置換
replace() メソッドを使って、文字列の大文字を小文字に、小文字を大文字に変換することも可能です。
大文字を小文字に変換する
public class ReplaceCaseExample {
public static void main(String[] args) {
String text = "HELLO JAVA";
String replacedText = text.replace("HELLO", "hello");
System.out.println("元の文字列: " + text);
System.out.println("置換後の文字列: " + replacedText);
}
}
元の文字列: HELLO JAVA
置換後の文字列: hello JAVA
コードの解説
text.replace("HELLO", "hello");を使用して、大文字の "HELLO" を小文字の "hello" に変換- 「JAVA」は変更されずそのまま残る
このように、replace() を使うことで特定の部分の大文字・小文字の置換が可能です。
4. replace() と replaceAll() の違い
replace() メソッドと replaceAll() メソッドは似ていますが、大きな違いがあります。
replace() と replaceAll() の違い
replace()… 指定した文字列をそのまま置換(単純な置換)replaceAll()… 正規表現を使って複雑な置換が可能
replaceAll() の使用例
public class ReplaceAllExample {
public static void main(String[] args) {
String text = "Java 123 Programming 456";
String replacedText = text.replaceAll("\\d+", "*");
System.out.println("元の文字列: " + text);
System.out.println("置換後の文字列: " + replacedText);
}
}
元の文字列: Java 123 Programming 456
置換後の文字列: Java * Programming *
コードの解説
replaceAll("\\d+", "*")を使用して、すべての数字(\d+)をアスタリスクに置換- 通常の
replace()では正規表現を使えないため、こうした場合はreplaceAll()を使う
このように、正規表現を使いたい場合は replaceAll() を活用しましょう。
5. replace() を使った応用例(文章の特定単語を置換)
文章の中の特定の単語を置き換える場合にも replace() を活用できます。
例: 文章内の単語を置換する
public class ReplaceWordExample {
public static void main(String[] args) {
String text = "今日はとても寒いです。寒い日は温かい飲み物が欲しいですね。";
String replacedText = text.replace("寒い", "暑い");
System.out.println("元の文章: " + text);
System.out.println("置換後の文章: " + replacedText);
}
}
元の文章: 今日はとても寒いです。寒い日は温かい飲み物が欲しいですね。
置換後の文章: 今日はとても暑いです。暑い日は温かい飲み物が欲しいですね。
コードの解説
replace("寒い", "暑い")を使用して、文章内の「寒い」をすべて「暑い」に変換- 置換後の文章では、「寒い」が「暑い」に変更されている
このように、特定の単語を他の単語に変えたいときに replace() を使うと便利です。
6. replace() を使って不要な記号を削除する
文章の中に含まれる不要な記号を削除する場合、replace() を活用すると便利です。
不要な記号を削除する例
public class RemoveSymbolsExample {
public static void main(String[] args) {
String text = "Hello, Java! Welcome to (programming).";
String cleanedText = text.replace(",", "").replace("!", "").replace("(", "").replace(")", "");
System.out.println("元の文章: " + text);
System.out.println("記号を削除後の文章: " + cleanedText);
}
}
元の文章: Hello, Java! Welcome to (programming).
記号を削除後の文章: Hello Java Welcome to programming.
コードの解説
replace(",", "")… カンマを削除replace("!", "")… 感嘆符を削除replace("(", "").replace(")", "")… カッコを削除- 複数の
replace()を組み合わせることで複数の記号を一度に削除
このように、replace() を使えば、不要な記号を取り除くことができます。
7. replace() を使って数字を特定の記号に置換する
文章の中に含まれる数字を特定の記号に置き換えたい場合にも replace() を活用できます。
数字を「#」に置き換える例
public class ReplaceNumbersExample {
public static void main(String[] args) {
String text = "商品番号: 12345, 価格: 1000円";
String maskedText = text.replace("12345", "#####").replace("1000", "####");
System.out.println("元の文章: " + text);
System.out.println("数字を置換後の文章: " + maskedText);
}
}
元の文章: 商品番号: 12345, 価格: 1000円
数字を置換後の文章: 商品番号: #####, 価格: ####円
コードの解説
replace("12345", "#####")を使って商品番号を「#####」に置換replace("1000", "####")を使って価格を「####」に置換
このように、特定の数字を記号に置換することで、データのマスキングが可能です。
8. 練習問題:「replace()」を使ったプログラムを作ろう
ここまでの replace() の使い方を踏まえて、実際にプログラムを書いてみましょう。
問題1: 「Hello, World!」の「Hello」を「Hi」に置換するプログラムを書きましょう。
問題2: 文章内のすべての数字を「*」に置き換えるプログラムを書きましょう。
問題3: 文章に含まれる「Java」という単語を「Python」に変更するプログラムを書きましょう。
解答例
public class ReplacePractice {
public static void main(String[] args) {
// 問題1
String text1 = "Hello, World!";
String replacedText1 = text1.replace("Hello", "Hi");
System.out.println("問題1の結果: " + replacedText1);
// 問題2
String text2 = "私の電話番号は 090-1234-5678 です。";
String replacedText2 = text2.replaceAll("\\d", "*");
System.out.println("問題2の結果: " + replacedText2);
// 問題3
String text3 = "Javaは人気のあるプログラミング言語です。";
String replacedText3 = text3.replace("Java", "Python");
System.out.println("問題3の結果: " + replacedText3);
}
}
問題1の結果: Hi, World!
問題2の結果: 私の電話番号は ***-****-**** です。
問題3の結果: Pythonは人気のあるプログラミング言語です。
コードの解説
- 問題1:
replace("Hello", "Hi")で「Hello」を「Hi」に変更 - 問題2:
replaceAll("\\d", "*")で文章内のすべての数字を「*」に置換 - 問題3:
replace("Java", "Python")で「Java」を「Python」に変更
このように、replace() を活用すれば、文章の置換やデータの加工が簡単にできます。ぜひ自分で試してみてください!