1. 序章

この短いチュートリアルでは、Kotlinで文字列を連結するさまざまな方法を調査します。

2. plus()メソッドの使用

KotlinのStringクラスには、 plus()メソッドが含まれています。

operator fun plus(other: Any?): String (source)

参照文字列を引数として渡された文字列と連結して取得した文字列を返します

例えば:

@Test
fun givenTwoStrings_concatenateWithPlusMethod_thenEquals() {
    val a = "Hello"
    val b = "Baeldung"
    val c = a.plus(" ").plus(b)

    assertEquals("Hello Baeldung", c)
}

また、渡されたオブジェクトが String でない場合は、オブジェクトのString表現が使用されることを理解することが重要です。

3. +演算子の使用

KotlinでStringsを連結する最も簡単な方法は、+演算子を使用することです。 その結果、演算子の左側と右側に文字列で構成される新しい文字列オブジェクトが取得されます:

@Test
fun givenTwoStrings_concatenateWithPlusOperator_thenEquals() {
    val a = "Hello"
    val b = "Baeldung"
    val c = a + " " + b

    assertEquals("Hello Baeldung", c)
}

もう1つの重要なポイントは、Kotlinでは、演算子のオーバーロードのおかげで、+演算子が plus()メソッドに解決されることです。

一般に、これは少数のStringsを連結するための一般的な方法です。

4. StringBuilderを使用する

ご存知のように、Stringオブジェクトは不変です。 +演算子またはplus()メソッドを使用して連結するたびに、新しいStringオブジェクトが取得されます。 対照的に、不要な String オブジェクトの作成を回避するために、StringBuilderを使用できます。

したがって、 StringBuilderは、最終的な文字列を含む単一の内部バッファーを作成します。

したがって、 StringBuilder は、多数の文字列を連結する場合に効率的です。

StringBuilderを使用したString連結の例を次に示します。

@Test
fun givenTwoStrings_concatenateWithStringBuilder_thenEquals() {
    val builder = StringBuilder()
    builder.append("Hello")
           .append(" ")
           .append("Baeldung")

    assertEquals("Hello Baeldung", builder.toString())
}

最後に、StringBuilder。の代わりにStringBufferをスレッドセーフな連結に使用できます。

5. 文字列テンプレートの使用

Kotlinには、Stringテンプレートと呼ばれる機能もあります。 文字列テンプレートには、文字列を構築するために評価される式が含まれています。

String テンプレート式は、ドル記号で始まり、その後に変数の名前が続きます。

テンプレートを使用したString連結の例を次に示します。

@Test
fun givenTwoStrings_concatenateWithTemplates_thenEquals() {
    val a = "Hello"
    val b = "Baeldung"
    val c = "$a $b"

    assertEquals("Hello Baeldung", c)
}

Kotlinコンパイラは、このコードを次のように変換します。

new StringBuilder().append(a).append(" ").append(b).toString()

最後に、このプロセスは文字列補間です。

6. 結論

この記事では、KotlinでStringオブジェクトを連結するいくつかの方法を学びました。

いつものように、このチュートリアルで提示されるすべてのコードは、GitHubにあります。