Очень простой вопрос, как правильно объединить String в Kotlin?
В Java вы должны использовать concat()
метод, например
String a = "Hello ";
String b = a.concat("World"); // b = Hello World
Однако эта concat()
функция недоступна для Kotlin. Стоит ли использовать +
знак?
a.plus(b)
илиa + b
и генерируется тот же байт-код"Hello" + "Word"
так же эффективно, как использование StringBuilder для добавления к строкеsomeHelloStringBuilder.append("World")
?kotlin.String
естьplus
метод:Подробнее см. Https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/plus.html .
источник
+
Оператор нормально, не вызывая переведенные функции оператораplus
... это не идиоматическоеa = a.plus(b)
например,plus()
менее практична, чемStringBuilder
метод добавления, т.е.Да, вы можете объединить с помощью
+
знака. В Kotlin есть строковые шаблоны, поэтому лучше использовать их как:var fn = "Hello" var ln = "World"
"$fn $ln"
для конкатенации.Вы даже можете использовать
String.plus()
метод.источник
+
Оператор нормально, не вызывая переведенные функции оператораplus
... это не идиоматическоеЯ согласен с принятым ответом выше, но он подходит только для известных строковых значений. Вот мое предложение для динамических строковых значений.
// A list may come from an API JSON like { "names": [ "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
Это полезно для объединения списка строк с разделителем.
источник
Подобно ответу @Rhusfer, я написал это. Если у вас есть группа
EditText
s и вы хотите объединить их значения, вы можете написать:listOf(edit_1, edit_2, edit_3, edit_4).joinToString(separator = "") { it.text.toString() }
Если вы хотите объединить
HashMap
, используйте это:map.entries.joinToString(separator = ", ") // Result: // id=123, name=John, surname=Smith
источник
Попробуйте это, я думаю, что это естественный способ объединения строк в Kotlin:
val result = buildString{ append("a") append("b") } println(result) // you will see "ab" in console.
источник
buildString {
вместоstringBuild {
Существуют различные способы объединения строк в примере котлина -
a = "Hello" , b= "World"
Использование оператора +
a+b
Использование
plus()
оператораa.plus(b)
Примечание - + внутренне преобразуется только в метод .plus ()
В двух вышеуказанных методах создается новый строковый объект, поскольку строки неизменяемы. если мы хотим изменить существующую строку, мы можем использовать StringBuilder
StringBuilder str = StringBuilder("Hello").append("World")
источник
yourString + = "newString"
Таким образом вы можете объединить строку
источник