Java の String クラスについて
Java の String
クラスは、文字列を表すために使用される不変のクラスです。このクラスは非常に多くの便利なメソッドを提供しており、文字列の操作や比較、検索、変換などに役立ちます。このページでは、Java の String
クラスについて詳細に解説し、多くの例を示します。
String クラスの不変性
String
クラスは不変(immutable)です。不変性とは、文字列オブジェクトが一度作成されると、その内容を変更できないことを意味します。
例えば、次のコードを考えてみましょう。
String str = "Hello";
str.concat(" World");
System.out.println(str); // "Hello" と出力される
str.concat(" World")
は “Hello World” を返しますが、元の str
には影響を与えません。新しい文字列を保持するには、結果を再割り当てする必要があります。
str = str.concat(" World");
System.out.println(str); // "Hello World" と出力される
文字列の生成
Java では文字列を生成する方法がいくつかあります。
- リテラルを使用する方法
new
キーワードを使用する方法
// リテラルを使用
String str1 = "Hello";
// new キーワードを使用
String str2 = new String("Hello");
// 空の文字列を生成
String empty = "";
リテラルを使用すると、文字列は String プールに保存され、効率的に再利用されます。
文字列の結合
Java では、文字列を結合する方法がいくつかあります。
- プラス演算子 (
+
) を使用 concat
メソッドを使用StringBuilder
やStringBuffer
を使用
// プラス演算子を使用
String greeting = "Hello" + " World";
// concat メソッドを使用
String greeting2 = "Hello".concat(" World");
// StringBuilder を使用
StringBuilder sb = new StringBuilder("Hello");
sb.append(" World");
String greeting3 = sb.toString();
文字列の比較
Java では文字列を比較する方法がいくつかあります。
equals
メソッドequalsIgnoreCase
メソッドcompareTo
メソッド- == 演算子
// equals メソッド
String str1 = "Hello";
String str2 = "Hello";
System.out.println(str1.equals(str2)); // true
// equalsIgnoreCase メソッド
String str3 = "hello";
System.out.println(str1.equalsIgnoreCase(str3)); // true
// compareTo メソッド
System.out.println(str1.compareTo(str2)); // 0(等しい場合)
System.out.println(str1.compareTo("Hi")); // 負の値
// == 演算子(参照の比較)
String str4 = new String("Hello");
System.out.println(str1 == str4); // false
主要な String メソッド
以下は String
クラスでよく使用されるメソッドの一部です。
length()
: 文字列の長さを取得charAt()
: 指定したインデックスの文字を取得substring()
: 部分文字列を取得indexOf()
: 指定した文字や文字列の位置を取得replace()
: 指定した文字や文字列を置換toUpperCase()
,toLowerCase()
: 文字列を大文字または小文字に変換
// length メソッド
String str = "Hello";
System.out.println(str.length()); // 5
// charAt メソッド
System.out.println(str.charAt(1)); // 'e'
// substring メソッド
System.out.println(str.substring(1, 4)); // "ell"
// indexOf メソッド
System.out.println(str.indexOf('l')); // 2
// replace メソッド
System.out.println(str.replace('l', 'r')); // "Herro"
// toUpperCase/toLowerCase メソッド
System.out.println(str.toUpperCase()); // "HELLO"
System.out.println(str.toLowerCase()); // "hello"
文字列と他のデータ型の変換
文字列と他のデータ型の間で変換を行うこともできます。
// 他のデータ型から文字列へ変換
int number = 42;
String numberStr = String.valueOf(number);
// 文字列から数値型へ変換
String numStr = "42";
int num = Integer.parseInt(numStr);
// 文字列から配列へ変換
String str = "Hello";
char[] chars = str.toCharArray();
Java の String
クラスを理解することで、文字列操作を効率的に行えるようになります。