Конкатенация строк в Котлине
1. Вступление
В этом коротком руководстве мы исследуем различные способы объединения строк в Kotlin.
2. Использование методаplus()
Класс KotlinString содержит методplus():
operator fun plus(other: Any?): String (source)
It returns a String obtained by concatenating reference String with the String passed as an argument.
Например:
@Test
fun givenTwoStrings_concatenateWithPlusMethod_thenEquals() {
val a = "Hello"
val b = "example"
val c = a.plus(" ").plus(b)
assertEquals("Hello example", c)
}
Также важно понимать, что если переданный объект неString, будет использоваться представление объектаString.
3. Использование оператора+
Самый простой способ объединенияStrings в Kotlin - использовать оператор+. В результате получаемnew String object composed of Strings on the left and the right side of the operator:
@Test
fun givenTwoStrings_concatenateWithPlusOperator_thenEquals() {
val a = "Hello"
val b = "example"
val c = a + " " + b
assertEquals("Hello example", c)
}
Другой ключевой момент заключается в том, что в Kotlin, благодаряoperator overload, оператор + преобразуется в методplus().
В общем, это обычный метод объединения небольших чиселStrings.
4. ИспользуяStringBuilder
Как мы знаем, объектыString неизменяемы. При каждой конкатенации с использованием оператора+ или методаplus() мы получаем новый объектString. Напротив, чтобы избежать ненужного создания объектаString, мы можем использоватьStringBuilder.
Следовательно,StringBuilder creates a single internal buffer that contains the final string.
Следовательно,StringBuilder более эффективен при объединении большого количества строк.
Вот пример конкатенацииString с использованиемStringBuilder:
@Test
fun givenTwoStrings_concatenateWithStringBuilder_thenEquals() {
val builder = StringBuilder()
builder.append("Hello")
.append(" ")
.append("example")
assertEquals("Hello example", builder.toString())
}
Наконец, мы можем использоватьStringBuffer для поточно-ориентированной конкатенации вместоStringBuilder.
5. Использование строковых шаблонов
Kotlin также имеет функцию под названием шаблоныString. String templates contain expressions that get evaluated to build a String.
Выражения шаблонаString начинаются со знака доллара, за которым следует имя переменной.
Вот пример конкатенацииString с использованием шаблонов:
@Test
fun givenTwoStrings_concatenateWithTemplates_thenEquals() {
val a = "Hello"
val b = "example"
val c = "$a $b"
assertEquals("Hello example", c)
}
Компилятор Kotlin переводит этот код в:
new StringBuilder().append(a).append(" ").append(b).toString()
Наконец, этот процессString interpolation.
6. Заключение
В этой статье мы узнали несколько способов объединения объектовString в Kotlin.
Как всегда, весь код, представленный в этом руководстве, можно найтиover on GitHub.