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.