Поиск…
Элементы строки
Элементы 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