Java における部分文字列の置き換え

JavaBeginner
オンラインで実践に進む

はじめに

この実験では、Java プログラミング言語を使って String 内の部分文字列を置き換える方法を学びます。Java に用意されているさまざまなメソッドを使って、単一または複数の文字や部分文字列を置き換えます。最後には、これらのメソッドを Java コードでどのように実装するかを十分に理解することができます。

Java ファイルを作成する

コードを記述して実行するための Java ファイルを作成しましょう。ターミナルを開き、プロジェクト ディレクトリに移動します。次のコマンドを使用して、SubstringReplace.java という名前の新しいファイルを作成します。

touch SubstringReplace.java

好きなテキスト エディタでファイルを開きます。

単一の文字の置き換え

文字列を構成する単一の文字を置き換えるには、replace() メソッドを使用できます。以下はその例です。

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "hello world!";
        System.out.println("Original String: " + originalString);
        // 単一の文字を置き換える
        String newString = originalString.replace('l', 'L');
        System.out.println("New String: " + newString);
    }
}

上記の例では、元の文字列の小文字の l を大文字の L に置き換えています。

コードをコンパイルして実行するには、次のコマンドを使用します。

javac SubstringReplace.java
java SubstringReplace

以下の出力が得られるはずです。

Original String: hello world!
New String: heLLo worLd!

部分文字列の置き換え

replace() メソッドを使用すると、部分文字列を新しい部分文字列に置き換えることができます。以下はその例です。

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "the quick brown fox jumps over the lazy dog";
        System.out.println("Original String: " + originalString);
        // 部分文字列を置き換える
        String newString = originalString.replace("the", "a");
        System.out.println("New String: " + newString);
    }
}

上記の例では、部分文字列 "the" のすべての出現箇所を部分文字列 "a" に置き換えています。

コードをコンパイルして実行するには、手順 2 と同じコマンドを使用します。

以下の出力が得られるはずです。

Original String: the quick brown fox jumps over the lazy dog
New String: a quick brown fox jumps over a lazy dog

部分文字列の最初の出現箇所を置き換える

replaceFirst() メソッドを使用すると、部分文字列の最初の出現箇所を新しい部分文字列に置き換えることができます。以下はその例です。

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "the quick brown fox jumps over the lazy dog";
        System.out.println("Original String: " + originalString);
        // 部分文字列の最初の出現箇所を置き換える
        String newString = originalString.replaceFirst("the", "a");
        System.out.println("New String: " + newString);
    }
}

上記の例では、部分文字列 "the" の最初の出現箇所を部分文字列 "a" に置き換えています。

コードをコンパイルして実行するには、手順 2 と同じコマンドを使用します。

以下の出力が得られるはずです。

Original String: the quick brown fox jumps over the lazy dog
New String: a quick brown fox jumps over the lazy dog

正規表現を使った文字の置き換え

正規表現を使って、文字をパターンに置き換えることができます。以下はその例です。

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "the quick brown fox jumps over the lazy dog";
        System.out.println("Original String: " + originalString);
        // 正規表現を使った文字の置き換え
        String newString = originalString.replaceAll("[aeiou]", "");
        System.out.println("New String: " + newString);
    }
}

上記の例では、正規表現を使って元の文字列からすべての母音を削除しています。

コードをコンパイルして実行するには、手順 2 と同じコマンドを使用します。

以下の出力が得られるはずです。

Original String: the quick brown fox jumps over the lazy dog
New String: th qck brwn fx jmps vr th lzy dg

正規表現を使った複数の文字の置き換え

正規表現を使って、複数の文字をパターンに置き換えることができます。以下はその例です。

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "the quick brown fox jumps over the lazy dog";
        System.out.println("Original String: " + originalString);
        // 正規表現を使った複数の文字の置き換え
        String newString = originalString.replaceAll("[aeiouAEIOU]", "");
        System.out.println("New String: " + newString);
    }
}

上記の例では、正規表現を使って元の文字列からすべての母音(小文字と大文字)を削除しています。

コードをコンパイルして実行するには、手順 2 と同じコマンドを使用します。

以下の出力が得られるはずです。

Original String: the quick brown fox jumps over the lazy dog
New String: th qck brwn fx jmps vr th lzy dg

正規表現を使った部分文字列の置き換え

正規表現を使って、部分文字列をパターンに置き換えることができます。以下はその例です。

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "the quick brown fox jumps over the lazy dog";
        System.out.println("Original String: " + originalString);
        // 正規表現を使った部分文字列の置き換え
        String newString = originalString.replaceAll("\\w+", "a");
        System.out.println("New String: " + newString);
    }
}

上記の例では、正規表現を使って元の文字列のすべての単語を文字 a に置き換えています。

コードをコンパイルして実行するには、手順 2 と同じコマンドを使用します。

以下の出力が得られるはずです。

Original String: the quick brown fox jumps over the lazy dog
New String: a a a a a a a a a

正規表現を使った部分文字列の複数回出現の置き換え

正規表現を使って、部分文字列のすべての出現箇所をパターンに置き換えることができます。以下はその例です。

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "the quick brown fox jumps over the lazy dog";
        System.out.println("Original String: " + originalString);
        // 正規表現を使った部分文字列のすべての出現箇所の置き換え
        String newString = originalString.replaceAll("the", "a");
        System.out.println("New String: " + newString);
    }
}

上記の例では、正規表現を使って部分文字列 "the" のすべての出現箇所を文字 a に置き換えています。

コードをコンパイルして実行するには、手順 2 と同じコマンドを使用します。

以下の出力が得られるはずです。

Original String: the quick brown fox jumps over the lazy dog
New String: a quick brown fox jumps over a lazy dog

StringBuilder を使った部分文字列の置き換え

より効率的な方法で部分文字列を置き換えるために、StringBuilder クラスを使うことができます。以下はその例です。

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "the quick brown fox jumps over the lazy dog";
        System.out.println("Original String: " + originalString);
        // StringBuilder を使った部分文字列の置き換え
        StringBuilder stringBuilder = new StringBuilder(originalString);
        stringBuilder.replace(0, 3, "a");
        String newString = stringBuilder.toString();
        System.out.println("New String: " + newString);
    }
}

上記の例では、StringBuilder クラスを使って文字列の最初の 3 文字を文字 a に置き換えています。

コードをコンパイルして実行するには、手順 2 と同じコマンドを使用します。

以下の出力が得られるはずです。

Original String: the quick brown fox jumps over the lazy dog
New String: a quick brown fox jumps over the lazy dog

StringBuffer を使った部分文字列の置き換え

StringBuilder と同様に、StringBuffer クラスを使って、より効率的な方法で部分文字列を置き換えることができます。唯一の違いは、StringBuffer がスレッドセーフであることです。以下はその例です。

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "the quick brown fox jumps over the lazy dog";
        System.out.println("Original String: " + originalString);
        // StringBuffer を使った部分文字列の置き換え
        StringBuffer stringBuffer = new StringBuffer(originalString);
        stringBuffer.replace(0, 3, "a");
        String newString = stringBuffer.toString();
        System.out.println("New String: " + newString);
    }
}

上記の例では、StringBuffer クラスを使って文字列の最初の 3 文字を文字 a に置き換えています。

コードをコンパイルして実行するには、手順 2 と同じコマンドを使用します。

以下の出力が得られるはずです。

Original String: the quick brown fox jumps over the lazy dog
New String: a quick brown fox jumps over the lazy dog

まとめ

この実験では、Java プログラミング言語を使って String 内の部分文字列を置き換える方法を学びました。Java に用意されている、単一または複数の文字や部分文字列を置き換えるいくつかのメソッドについて説明しました。また、より効率的な部分文字列の置き換えのために、正規表現と StringBuilder/StringBuffer クラスをどのように使うかも学びました。この知識を使えば、Java プログラムで文字列を簡単に操作できます。