Spec-Zone.ru › Kotlin 1.7

Строки

Строки в 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"

Экранирование выполняется стандартным способом, с помощью обратного слэша (\).
Список поддерживаемых последовательностей экранирования см. на странице Символы.

Сырые строки

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

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
"""
Последнее изменение: 10 августа 2022 г.
Символы Массивы

© 2010–2022 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