Поиск…


Элементы строки

Элементы String - это символы, к которым можно получить доступ с помощью string[index] операции индексирования string[index] .

val str = "Hello, World!"
println(str[1]) // Prints e

Элементы String можно повторить с помощью цикла for.

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

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

Котлин имеет два типа строковых литералов:

  • Снятая строка
  • Исходная строка

Сбежавшая строка обрабатывает специальные символы, экранируя их. Экранирование выполняется с обратной косой чертой. Поддерживаются следующие escape-последовательности: \t , \b , \n , \r , \' , \" , \\ и \$ . Для кодирования любого другого символа используйте синтаксис escape-последовательности Unicode: \uFF00 .

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; например trimMargin(">") .

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

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

val i = 10
val s = "i = $i" // evaluates to "i = 10"

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

val s = "abc"
val str = "$s.length is ${s.length}" // evaluates to "abc.length is 3"

Чтобы включить буквальный знак доллара в строку, убегите с ним, используя обратную косую черту:

val str = "\$foo" // evaluates to "$foo"

Исключение составляют необработанные строки, которые не поддерживают экранирование. В необработанных строках вы можете использовать следующий синтаксис для обозначения знака доллара.

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

Строковое равенство

В котлинских строках сравниваются с == оператором, которые чётствуют за их структурное равенство.

val str1 = "Hello, World!"
val str2 = "Hello," + " World!"
println(str1 == str2) // Prints true

Ссылочное равенство проверяется с помощью оператора === .

val str1 = """
    |Hello, World!
    """.trimMargin()

val str2 = """
    #Hello, World!
    """.trimMargin("#")

val str3 = str1

println(str1 == str2) // Prints true
println(str1 === str2) // Prints false
println(str1 === str3) // Prints true


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow