Ответ
В 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), поэтому литералы с одинаковым содержимым могут ссылаться на один объект.