Spec-Zone.ru › Kotlin 1.9

Строки

Строки в Kotlin представлены типом String. Обычно, строковое значение представляет собой последовательность символов в двойных кавычках ("):

val str = "abcd 123"

Элементы строки — это символы, к которым можно обратиться с помощью операции индексирования: s[i]. Вы можете перебирать эти символы с помощью for цикла:

fun main() {
val str = "abcd"
//sampleStart
for (c in str) {
    println(c)
}
//sampleEnd
}

Строки неизменяемы. После инициализации строки её значение нельзя изменить или присвоить новое значение. Все операции, которые преобразуют строки, возвращают результаты в новом String объекте, оставляя исходную строку неизменной:

fun main() {
//sampleStart
    val str = "abcd"
    println(str.uppercase()) // Create and print a new String object
    println(str) // The original string remains the same
//sampleEnd
}

Для конкатенации строк используйте оператор + . Это также работает для конкатенации строк со значениями других типов, если первый элемент в выражении — строка:

fun main() {
//sampleStart
val s = "abc" + 1
println(s + "def")
//sampleEnd
}

В большинстве случаев предпочтительно использовать шаблоны строк или сырые строки вместо конкатенации строк.

Литералы строк

Kotlin имеет два типа литералов строк:

  • Экранированные строки

  • Сырые строки

Экранированные строки

Экранированные строки могут содержать экранированные символы.
Вот пример экранированной строки:

val s = "Hello, world!\n"

Экранирование выполняется стандартным способом, с использованием обратной косой черты (\).
Список поддерживаемых последовательностей escape-символов см. на странице Символы.

Сырые строки

Сырые строки могут содержать новые строки и произвольный текст. Они ограничены тройными кавычками ("""), не содержат экранирования и могут содержать новые строки и любые другие символы:

val text = """
    for (c in "foo")
        print(c)
"""

Чтобы удалить начальные пробелы из сырых строк, используйте функцию trimMargin():

val text = """
    |Tell me and I forget.
    |Teach me and I remember.
    |Involve me and I learn.
    |(Benjamin Franklin)
    """.trimMargin()

По умолчанию в качестве префикса отступа используется символ вертикальной черты |, но вы можете выбрать другой символ и передать его в качестве параметра, например, trimMargin(">").

Шаблоны строк

Литералы строк могут содержать выражения шаблонов — фрагменты кода, которые оцениваются, и результаты которых конкатенируются в строку. Выражение шаблона начинается с символа доллара ($) и состоит из имени:

fun main() {
//sampleStart
    val i = 10
    println("i = $i") // Prints "i = 10"
//sampleEnd
}

или выражения в фигурных скобках:

fun main() {
//sampleStart
    val s = "abc"
    println("$s.length is ${s.length}") // Prints "abc.length is 3"
//sampleEnd
}

Шаблоны можно использовать как в экранированных, так и в сырых строках. Чтобы вставить символ доллара $ в сыром строковом литерале (который не поддерживает экранирование обратной косой чертой) перед любым символом, являющимся началом идентификатора, используйте следующий синтаксис:

val price = """
${'$'}_9.99
"""
Последнее изменение: 25 июля 2023
Символы Массивы

© 2010–2023 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/strings.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API