Kotlin - Как правильно конкатенировать строку

Очень простой вопрос, каков правильный способ конкатенации строки в Котлин?

В Java вы должны использовать метод concat(), например

String a = "Hello ";
String b = a.concat("World"); // b = Hello World

Функция concat() недоступна для Kotlin. Должен ли я использовать знак +?

Ответы

Ответ 1

В 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

Ответ 3

Да, вы можете конкатенировать, используя знак +. У Kotlin есть строковые шаблоны, поэтому лучше использовать их, например:

var fn = "Hello"
var ln = "World"

"$fn $ln" для конкатенации.

Вы даже можете использовать метод String.plus().

Ответ 4

Я согласен с принятым ответом выше, но он хорош только для известных строковых значений. Для динамических строковых значений вот мое предложение.

// 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

Это полезно для объединения списка строк с разделителем.

Ответ 5

Похоже на ответ @Rhusfer Я написал это. Если у вас есть группа EditText и вы хотите объединить их значения, вы можете написать:

listOf(edit_1, edit_2, edit_3, edit_4).joinToString(separator = "") { it.text.toString() }

Ответ 6

Существуют различные способы объединения строк в kotlin. Пример -

a = "Hello" , b= "World"
  1. Использование оператора a+b

  2. Использование оператора plus()

    a.plus(b)

Примечание - + внутренне преобразуется только в метод .plus()

В вышеупомянутых 2 методах новый строковый объект создается, поскольку строки являются неизменяемыми. если мы хотим изменить существующую строку, мы можем использовать StringBuilder

StringBuilder str = StringBuilder("Hello").append("World")

Ответ 7

yourString + = "newString"

Таким образом, вы можете объединить строку