13.Javaでの文字列操作に関する完全ガイド

独習JAVA

Javaでの文字列操作は非常に重要なスキルであり、多くのプログラムやアプリケーションで必須の機能です。Javaの`String`クラスは、文字列を操作するための豊富なメソッドを提供しています。本記事では、Javaでの文字列操作について基本から応用までを解説し、複数のサンプルコードと実行結果を交えながらわかりやすく説明します。

Javaの文字列(String)とは?

Javaの`String`クラスは不変(immutable)であり、一度作成された文字列は変更できません。この不変性は、Javaのパフォーマンスを高めるための重要な要素です。文字列を操作する際には、新しい文字列が作成され、元の文字列は変更されません。

public class Main {
    public static void main(String[] args) {
        String greeting = "Hello, World!";
        System.out.println(greeting); // 出力: Hello, World!
        
        greeting = greeting.toUpperCase();
        System.out.println(greeting); // 出力: HELLO, WORLD!
    }
}

上記の例では、`greeting`文字列を大文字に変換していますが、元の文字列は変更されず、新しい大文字の文字列が生成されます。

文字列の基本操作

`String`クラスは、文字列の操作に便利なメソッドを多数提供しています。ここでは、いくつかの基本的な操作方法を見てみましょう。

文字列の結合

`String`クラスの`concat()`メソッドまたは`+`演算子を使用して、2つ以上の文字列を結合できます。

public class Main {
    public static void main(String[] args) {
        String firstName = "Taro";
        String lastName = "Yamada";
        
        // 文字列の結合
        String fullName = firstName + " " + lastName;
        System.out.println(fullName); // 出力: Taro Yamada
        
        // concatメソッドを使用
        String fullNameConcat = firstName.concat(" ").concat(lastName);
        System.out.println(fullNameConcat); // 出力: Taro Yamada
    }
}

`+`演算子と`concat()`メソッドはどちらも文字列を結合できますが、`+`演算子は直感的に使えるため、よく利用されます。

文字列の長さを取得する

`length()`メソッドを使用すると、文字列の長さ(文字数)を取得できます。

public class Main {
    public static void main(String[] args) {
        String message = "Java Programming";
        int length = message.length();
        System.out.println("The length of the message is: " + length); // 出力: The length of the message is: 16
    }
}

この例では、`message`文字列の長さが16であることが表示されます。スペースも1つの文字としてカウントされる点に注意してください。

部分文字列の取得

`substring()`メソッドを使用すると、指定した範囲の部分文字列を取得できます。開始位置は0から始まります。

public class Main {
    public static void main(String[] args) {
        String text = "Hello, Java!";
        String subText = text.substring(7, 11); // 7番目から10番目までの文字
        System.out.println(subText); // 出力: Java
    }
}

この例では、文字列`”Hello, Java!”`の7番目から10番目までの文字を抽出して、`”Java”`を取得しています。開始インデックスは含まれますが、終了インデックスは含まれない点に注意してください。

文字列の比較

文字列を比較するには、`equals()`メソッドまたは`compareTo()`メソッドを使用します。`==`演算子は、文字列の内容ではなく、参照の同一性を比較するため、通常は`equals()`を使用します。

public class Main {
    public static void main(String[] args) {
        String str1 = "Java";
        String str2 = "Java";
        String str3 = new String("Java");

        // equalsメソッドで内容を比較
        System.out.println(str1.equals(str2)); // 出力: true
        System.out.println(str1.equals(str3)); // 出力: true

        // == 演算子で参照を比較
        System.out.println(str1 == str2); // 出力: true
        System.out.println(str1 == str3); // 出力: false
    }
}

この例では、`equals()`メソッドを使用して、文字列の内容が等しいかを確認しています。一方、`==`演算子はオブジェクトの参照が同じかどうかを比較します。

文字列の置換

`replace()`メソッドを使用すると、文字列内の特定の文字や部分文字列を置換できます。

public class Main {
    public static void main(String[] args) {
        String originalText = "I love Java";
        String newText = originalText.replace("Java", "Python");
        System.out.println(newText); // 出力: I love Python
    }
}

この例では、`”Java”`という部分文字列が`”Python”`に置き換えられ、新しい文字列が生成されます。

文字列のトリム(前後の空白の削除)

`trim()`メソッドを使用すると、文字列の前後の余計な空白を削除できます。このメソッドは、文字列の内容を変更せず、新しい文字列を返します。

public class Main {
    public static void main(String[] args) {
        String message = "   Hello, Java!   ";
        String trimmedMessage = message.trim();
        System.out.println(trimmedMessage); // 出力: Hello, Java!
    }
}

この例では、文字列の前後にある空白が削除され、結果として`”Hello, Java!”`が表示されます。

文字列の分割

`split()`メソッドを使用すると、指定した区切り文字に基づいて文字列を分割できます。結果として、分割された部分文字列の配列が返されます。

public class Main {
    public static void main(String[] args) {
        String data = "apple,banana,orange";
        String[] fruits = data.split(",");
        for (String fruit : fruits) {
            System.out.println(fruit);
        }
    }
}

この例では、カンマ(`,`)で文字列を分割し、それぞれのフルーツを個別に表示しています。

まとめ

Javaでの文字列操作は、非常に多様で強力です。`String`クラスの不変性を理解し、`concat()`や`substring()`、`equals()`といったメソッドを適切に活用することで、効率的な文字列操作が可能になります。また、`split()`や`replace()`といったメソッドを駆使して、複雑な文字列操作にも対応できるようになります。本記事で紹介した基本的な操作に慣れておけば、Javaプログラミングにおける文字列操作に自信を持てるでしょう。

購読
通知
0 Comments
Inline Feedbacks
View all comments