Какие знаешь особенности работы со строками в Kotlin

«Какие знаешь особенности работы со строками в Kotlin» — вопрос из категории Kotlin, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Kotlin строки неизменяемы (immutable). Любая операция, изменяющая строку, создает новый объект.

Основные особенности:

  • Шаблонные строки (String templates):
    val name = "Alex"
    println("Hello, $name") // Hello, Alex
    println("1 + 2 = ${1 + 2}") // 1 + 2 = 3
  • Многострочные строки (trimIndent, trimMargin):
    val text = """
        |First line
        |Second line
    """.trimMargin()
  • Экранирование:
    val path = "C:\Users\file.txt" // Двойной обратный слэш
    val quote = "He said, "Hello""  
  • Сравнение:
    val str1 = "Kotlin"
    val str2 = "kotlin".capitalize() // Создает новую строку
    println(str1 == str2) // true (сравнение содержимого)
    println(str1 === str2) // false (разные объекты)

Оптимизация: Kotlin использует пул строк (String pool), поэтому литералы с одинаковым содержимым могут ссылаться на один объект.