Java の文字列連結

JavaJavaBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

連結とは、2つ以上の文字列を1つの文字列に結合するプロセスです。Javaでは、文字列を連結する方法がいくつかあります。各方法は、要件に応じて利点と欠点があります。この実験では、Javaで文字列を連結するさまざまな方法を扱います。

+演算子を使用した文字列を連結する

Javaで文字列を結合する最も簡単な方法は、+演算子を使用することです。+演算子は、文字列との操作に対してオーバーロードされています。以下のコードブロックを見て、+演算子を使用して文字列を連結する方法を確認してください。

public class ConcatenateStrings {
    public static void main(String[] args) {
        String a = "Hello";
        String b = "World";
        String combination = a + " " + b;   // 使用 + 演算子で文字列を連結する
        System.out.println(combination);    // 出力: Hello World
    }
}

StringBuilderクラスを使用した文字列を連結する

Javaで文字列を連結する別の方法は、StringBuilderクラスを使用することです。StringBuilderクラスは、2つ以上の文字列を結合するためのappend()メソッドを提供します。文字列の連結時には、StringBuilderの方がStringクラスよりも高速です。以下のコードブロックでは、StringBuilderクラスを使用して文字列を連結する方法を示します。

public class ConcatenateStrings {
    public static void main(String[] args) {
        String a = "Hello";
        String b = "World";
        StringBuilder builder = new StringBuilder();
        builder.append(a).append(" ").append(b);   // StringBuilderクラスを使用して文字列を連結する
        String combination = builder.toString();
        System.out.println(combination);   // 出力: Hello World
    }
}

StringBufferクラスを使用した文字列を連結する

StringBuilderと同様に、StringBufferも可変の文字シーケンスであり、文字列を追加するためのappend()メソッドを提供します。StringBufferは同期化されており、複数のスレッドが同時にアクセスできないことを意味します。

public class ConcatenateStrings {
    public static void main(String[] args) {
        String a = "Hello";
        String b = "World";
        StringBuffer buffer = new StringBuffer();
        buffer.append(a).append(" ").append(b);   // StringBufferクラスを使用して文字列を連結する
        String combination = buffer.toString();
        System.out.println(combination);   // 出力: Hello World
    }
}

String.concat()メソッドを使用した文字列を連結する

concat()メソッドを使用して、2つの文字列を連結することができます。このメソッドは内部的にStringBuilderクラスを使用して連結を行います。以下のコードブロックでは、concat()メソッドを使用して文字列を連結する方法を示します。

public class ConcatenateStrings {
    public static void main(String[] args) {
        String a = "Hello";
        String b = "World";
        String combination = a.concat(" ").concat(b);   // String.concat()メソッドを使用して文字列を連結する
        System.out.println(combination);   // 出力: Hello World
    }
}

String.join()メソッドを使用した文字列を連結する

String.join()メソッドは、区切り文字を使って複数の文字列を連結するために使用されます。String.join()の最初のパラメータは、文字列の間に追加する必要がある区切り文字です。このメソッドはJava 8以降で機能します。以下のコードブロックを見て、String.join()メソッドを使って文字列を連結する方法を確認してください。

public class ConcatenateStrings {
    public static void main(String[] args) {
        String a = "Hello";
        String b = "World";
        String c = "Java";
        String combination = String.join(" ", a, b, c);   // String.join()メソッドを使って文字列を連結する
        System.out.println(combination);   // 出力: Hello World Java
    }
}

String.format()メソッドを使用した文字列を連結する

String.format()メソッドは、書式設定された文字列を返します。このメソッドは、文字列変数を連結するための書式設定文字列を最初のパラメータとして受け取ります。このメソッドは、C言語のprintf関数と同じように機能します。以下のコードブロックでは、String.format()メソッドを使用して文字列を連結する方法を示します。

public class ConcatenateStrings {
    public static void main(String[] args) {
        String a = "Hello";
        String b = "World";
        String c = "Java";
        String combination = String.format("%s %s %s", a, b, c);  // String.format()メソッドを使用して文字列を連結する
        System.out.println(combination);   // 出力: Hello World Java
    }
}

Arrays.toString()メソッドを使用した文字列を連結する

Arrays.toString()メソッドは、配列の内容を表す文字列を返すために使用されます。以下のコードブロックを見て、Arrays.toString()メソッドを使って文字列の配列を連結する方法を確認してください。

import java.util.Arrays;
public class ConcatenateStrings {
    public static void main(String[] args) {
        String[] strings = {"Hello", "World", "Java"};
        String combination = Arrays.toString(strings);   // Arrays.toString()メソッドを使って文字列の配列を連結する
        System.out.println(combination);   // 出力: [Hello, World, Java]
    }
}

StringJoinerクラスを使用した文字列を連結する

StringJoinerクラスは、区切り文字を使って文字列を結合するために使用されます。StringJoinerクラスはJava 8以降利用可能です。次の例では、区切り文字を使って3つの文字列を連結するためにStringJoinerクラスを使用します。以下のコードブロックを見て、StringJoinerクラスを使って文字列を連結する方法を確認してください。

import java.util.StringJoiner;
public class ConcatenateStrings {
    public static void main(String[] args) {
        StringJoiner joiner = new StringJoiner(" ");
        joiner.add("Hello");  // StringJoinerクラスを使って文字列を連結する
        joiner.add("World");
        joiner.add("Java");
        String combination = joiner.toString();
        System.out.println(combination);   // 出力: Hello World Java
    }
}

Collections.join()メソッドを使用した文字列を連結する

Collectionsクラスのjoin()メソッドを使って、文字列のリストを連結することもできます。以下のコードブロックを見て、Collections.join()メソッドを使って文字列のリストを連結する方法を確認してください。

import java.util.Arrays;
import java.util.List;
import java.util.Collections;
public class ConcatenateStrings {
    public static void main(String[] args) {
        List<String> strings = Arrays.asList("Hello", "World", "Java");
        String separator = " ";
        String combination = String.join(separator, strings);   // Collections.join()メソッドを使って文字列のリストを連結する
        System.out.println(combination);   // 出力: Hello World Java
    }
}

Files.lines()メソッドを使用した文字列を連結する

Java 8で導入されたFiles.lines()メソッドを使って文字列を連結することもできます。以下のコードブロックを見て、Files.lines()メソッドを使って文字列を連結する方法を確認してください。

import java.nio.file.Files;
import java.nio.file.Paths;
import java.io.IOException;
public class ConcatenateStrings {
    public static void main(String[] args) {
        try {
            String combination = Files.lines(Paths.get("file1.txt"))
                                     .reduce("", (line1, line2) -> line1 + line2);
            System.out.println(combination);
        } catch (IOException exception) {
            System.out.println("Exception Occurred: " + exception);
        }
    }
}

注: 上記のコードブロックは、file1.txtという名前のファイルの内容を読み取り、その内容を1つの文字列に連結します。

まとめ

要約すると、Javaで文字列を連結する方法はたくさんあります。この実験では、+演算子、StringBuilderクラス、StringBufferクラス、String.concat()メソッド、String.join()メソッド、String.format()メソッド、Arrays.toString()メソッド、StringJoinerクラス、Collections.join()メソッド、およびFiles.lines()メソッドなど、さまざまな方法を扱いました。それぞれの方法のニュアンスを理解し、適切に使用することが必要であり、目的の結果を得るために適切に使用することが必要です。