Java の String クラスについて

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 メソッドを使用
  • StringBuilderStringBuffer を使用

// プラス演算子を使用
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 クラスを理解することで、文字列操作を効率的に行えるようになります。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です