JavaのString型について

JavaのString型について

String型とは

JavaのString型は、文字列を扱うためのクラスです。Javaでは、文字列はオブジェクトとして扱われます。StringはJavaの標準ライブラリに含まれており、java.lang.Stringパッケージにあります。

JavaのString型は一度作成されると変更できない「不変オブジェクト(Immutable Object)」です。

基本的な文字列の作成例:


String greeting = "Hello, World!";
System.out.println(greeting);  // 出力: Hello, World!
    

Stringの作成方法

Javaで文字列を作成する方法は主に2つあります:

リテラルを使う

最も一般的な方法です。


String str1 = "Hello";
    

コンストラクタを使う

newキーワードを使って明示的にインスタンスを作成します。


String str2 = new String("Hello");
    

文字の配列から作成することもできます:


char[] chars = {'J', 'a', 'v', 'a'};
String str3 = new String(chars);
System.out.println(str3);  // 出力: Java
    

Stringの不変性(Immutability)

JavaのStringは不変(Immutable)です。つまり、Stringオブジェクトが作成された後は、その内容を変更することはできません。

例えば、次のコードは新しいStringオブジェクトを作成します:


String str = "Hello";
str = str + " World";
System.out.println(str);  // 出力: Hello World
    

ここでstrが変更されたように見えますが、実際には新しいStringオブジェクトが作成され、その参照がstrに代入されています。

Stringの連結

文字列の連結にはいくつかの方法があります:

+ 演算子を使う


String firstName = "John";
String lastName = "Doe";
String fullName = firstName + " " + lastName;
System.out.println(fullName);  // 出力: John Doe
    

concat()メソッドを使う


String str1 = "Hello";
String str2 = "World";
String result = str1.concat(" ").concat(str2);
System.out.println(result);  // 出力: Hello World
    

主なStringメソッド

JavaのStringクラスには多くの便利なメソッドが用意されています。

length()


String str = "Hello";
System.out.println(str.length());  // 出力: 5
    

toUpperCase() と toLowerCase()


String str = "Hello";
System.out.println(str.toUpperCase());  // 出力: HELLO
System.out.println(str.toLowerCase());  // 出力: hello
    

substring()


String str = "Hello, World!";
System.out.println(str.substring(7));        // 出力: World!
System.out.println(str.substring(0, 5));     // 出力: Hello
    

replace()


String str = "Java is fun";
System.out.println(str.replace("fun", "awesome"));  // 出力: Java is awesome
    

split()


String str = "apple,banana,orange";
String[] fruits = str.split(",");
for (String fruit : fruits) {
    System.out.println(fruit);
}
// 出力:
// apple
// banana
// orange
    

Stringの比較

Javaで文字列を比較する方法には、以下の2つがあります:

== 演算子

参照が同じオブジェクトを指しているかを比較します。


String str1 = "Hello";
String str2 = "Hello";
System.out.println(str1 == str2);  // 出力: true
    

equals()メソッド

文字列の内容を比較します。


String str1 = new String("Hello");
String str2 = new String("Hello");
System.out.println(str1.equals(str2));  // 出力: true
    

StringBuilderとStringBuffer

Stringが不変であるのに対し、StringBuilderStringBufferは変更可能な文字列を扱うためのクラスです。

StringBuilder


StringBuilder sb = new StringBuilder("Hello");
sb.append(" World");
System.out.println(sb.toString());  // 出力: Hello World
    

StringBuffer

StringBufferはスレッドセーフで、複数のスレッドから同時にアクセスされる場合に使用します。


StringBuffer sb = new StringBuffer("Hello");
sb.append(" World");
System.out.println(sb.toString());  // 出力: Hello World
    

Stringプールについて

Javaでは、同じ内容の文字列が重複しないように、文字列リテラルは「Stringプール」と呼ばれる領域に格納されます。


String str1 = "Hello";
String str2 = "Hello";
System.out.println(str1 == str2);  // 出力: true
    

上記の例では、str1str2は同じ"Hello"を参照しています。

コメントを残す

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