Строки в Kotlin

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

for (c in str) {
    println(c)
}

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

val s = "abc" + 1
println(s + "def")

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

Строковые литералы

В 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(">").

Строковые шаблоны

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

val i = 10
println("i = $i") // печатает "i = 10"

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

val s = "abc"
println("$s.length is ${s.length}") // печатает "abc.length is 3"

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

val price = """
${'$'}9.99
"""


Читайте также:


Комментарии

Популярные сообщения из этого блога

Наследование в Kotlin

Возврат и прыжки в Kotlin