5.9 KiB
title | localeTitle |
---|---|
Strings | Строки |
Строки
Строка - один из базовых типов данных в языке программирования Kotlin. Строки представлены типом String
. Строки неизменяемы. Kotlin имеет богатый API для удобной работы со строками.
Основное использование
Объявление
// явное объявление типа
var firstName : String = "Elon"
// или неявное объявление типа (оба варианта скомпилируются)
val lastName = "Musk"
Кроме того, обратите внимание на использование ключевого слова val
при объявлении переменной, вот как оно себя ведет:
firstName = "Mark" // переменная может быть изменена
lastName = "Zuckerberg" // переменная не может быть изменена
lastName = 12 // Ошибка: несоответствие типов
Сложение строк (конкатенация)
В нижеприведённом примере мы прибавляем Int
к String
, что приведёт к выводу String
.
var str = "abc" + 1
println(str + "def")
Вывод:
abc1def
Даже без явного преобразования значения Int
(в данном случае 1) в объект String
в результате получается String
.
Строка с несколькими строками
Kotlin позволяет объявлять переменные String
с несколькими строками, используя тройные кавычки вместо одинарных:
var str = """
This is line 1
This is line 2
This is line 3
"""
println(str)
Вывод:
This is line 1
This is line 2
This is line 3
или с .trimIndent()
Использование trimIndent()
дополнительно помогает обеспечить чистый выходной формат, удалив лишние и ненужные отступы в каждой строке. Изучите фрагмент кода ниже:
var str = """
This is line 1
This is line 2
This is line 3
""".trimIndent()
println(str)
Вывод:
This is line 1
This is line 2
This is line 3
Доступ к символам строки
Доступ по индексу
Программисты могут обращаться к элементам (символам) строки, используя оператор доступа по индексу:
var str = "Example"
println(str[2])
Вывод:
a
Это похоже на доступ к элементу из массива. Другой пример:
var str = "Example"
println(str[9]) // Ошибка: индекс выходит за границы
Итерация через строку
Элементы строки - это символы, к которым можно получить доступ через индекс: s[i]
.
var str = "Example"
for (c in str) {
println(c)
}
Вывод:
E
x
a
m
p
l
e
Неизменяемость строки
Как и в Java, вы не можете изменять отдельные элементы String
:
var str = "Example"
str[2] = "b" // Ошибка
Повторное присвоение значений String
var str = "Example"
println(str)
str = "Example was changed"
println(str)
Вывод:
Example
Example was changed
Свойства строки
Определение длины строки
var str = "Example"
println(str.length)
Вывод:
7
Функции строки
Это некоторые из обычных функций String
, доступных в текущей версии Kotlin.
compareTo
Сравнивает данный объект с другим указанным объектом. Возвращает ноль, если данный объект равен указанному другому объекту, отрицательное число, если данный объект "меньше" другого, или положительное число, если объект "больше" другого.
var str = "Example"
var str2 = "Example123"
var str3 = "Example12345"
println(str.compareTo(str2))
println(str.compareTo(str3))
println(str3.compareTo(str))
println(str.compareTo("Example"))
Вывод:
-3
-5
5
0 # Equal
equals
Указывает, является ли объект String
в точности равным другому объекту String
var str = "Example"
var str2 = "Example2"
println(str.equals("Example"))
println(str2.equals("Example"))
Вывод:
true
false
get
Возвращает символ в указанном индексе в этой последовательности символов.
var str = "Example"
println(str.get(3))
Вывод:
m
toString
Возвращает строковое представление объекта.
println(9.toString() + 10)
println(9 + 10)
Вывод:
"910"
19