非常に基本的な質問、Kotlinで文字列を連結する正しい方法は何ですか?
Javaではconcat()
メソッドを使います。
String a = "Hello ";
String b = a.concat("World"); // b = Hello World
concat()
関数はKotlinでは利用できません。 +
記号を使うべきですか?
Kotlinでは、 文字列補間/テンプレート を使用して連結できます。
val a = "Hello"
val b = "World"
val c = "$a $b"
出力は次のようになります。Hello World
あるいは+
/ plus()
演算子を使って連結することもできます。
val a = "Hello"
val b = "World"
val c = a + b // same as calling operator function a.plus(b)
print(c)
出力は次のようになります。HelloWorld
あるいは StringBuilder
を使って連結することもできます。
val a = "Hello"
val b = "World"
val sb = StringBuilder()
sb.append(a).append(b)
val c = sb.toString()
print(c)
出力は次のようになります。HelloWorld
kotlin.String
にはplus
メソッドがあります。
a.plus(b)
詳しくは https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/plus.html を参照してください。
私は上記の受け入れられた答えに同意しますが、それは既知の文字列値に対してのみ有効です。動的な文字列値については、これが私の提案です。
// A list may come from an API JSON like
{
"persons": {
"Person 1",
"Person 2",
"Person 3",
...
"Person N"
}
}
var listOfNames = mutableListOf<String>()
val stringOfNames = listOfNames.joinToString(", ")
// ", " <- a separator for the strings, could be any string that you want
// Posible result
// Person 1, Person 2, Person 3, ..., Person N
これは、文字列のリストを区切り文字で連結するのに便利です。
はい、+
記号を使って連結することができます。 Kotlinには文字列テンプレートがあるので、それらを次のように使うのが良いです。
var fn = "Hello"
var ln = "World"
連結の場合は"$fn $ln"
。
String.plus()
メソッドを使うこともできます。
私はこれを@Rhusfer回答と同様に書きました。 EditText
sのグループがあり、それらの値を連結したい場合は、次のように書くことができます。
listOf(edit_1, edit_2, edit_3, edit_4).joinToString(separator = "") { it.text.toString() }
Kotlinで文字列を連結するための様々な方法があります例 -
a = "Hello" , b= "World"
+演算子a+b
を使う
plus()
演算子を使う
a.plus(b)
注 - +は内部的に.plus()メソッドのみに変換されます
上記の2つのメソッドでは、文字列は不変であるため、新しい文字列オブジェクトが作成されます。既存の文字列を修正したい場合は、StringBuilderを使用できます。
StringBuilder str = StringBuilder("Hello").append("World")