Конкатенатни струни в Котлин

1. Въведение

В този кратък урок ще проучим различни начини за обединяване на низове в Kotlin.

2. Използване на плюс () Метод

Kotlin на String клас съдържа плюс () метод:

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

Той връща String, получен чрез обединяване на референтен String с String, предаден като аргумент .

Например:

@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 е използването на оператора + . В резултат на това получаваме нов обект String, съставен от низове от лявата и дясната страна на оператора:

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

Друг ключов момент е, че в Kotlin, благодарение на претоварването на оператора, + операторът се решава до метода plus () .

Като цяло това е често срещан метод за обединяване на малък брой низове .

4. Използване на StringBuilder

Както знаем, String обектите са неизменни. С всяка конкатенация, използваща оператора + или метода plus () , получаваме нов обект String . За разлика от това, за да избегнем ненужното създаване на String обект, можем да използваме StringBuilder .

Следователно StringBuilder създава единичен вътрешен буфер, който съдържа крайния низ.

Следователно StringBuilder е по-ефективен при обединяване на голям брой низове.

Ето пример за конкатенация на String с помощта на StringBuilder :

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

И накрая, можем да използваме StringBuffer за обединяване на нишки вместо StringBuilder.

5. Използване на низови шаблони

Kotlin има и функция, наречена String templates. Шаблоните за низове съдържат изрази, които се оценяват за изграждане на низ .

Изразите на шаблонен низ започват със знак за долар, последван от името на променливата.

Ето един пример на низове конкатенация използването на шаблони:

@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()

И накрая, този процес е интерполация на String .

6. Заключение

В тази статия научихме няколко начина за обединяване на String обекти в Kotlin.

Както винаги, целият код, представен в този урок, може да бъде намерен в GitHub.