English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В этой статье вы узнаете о Kotlin строках, шаблонах строк и некоторых часто используемых свойствах и функциях строк с помощью примеров.
Строка является последовательностью символов. Например, "Hello there!" является литеральным значением строки.
В Kotlin все строки являются объектами класса String. Это означает, что такие строки, как "Hello here!"
Это способ определить переменную типа String в Kotlin. Например,
val myString = "Hey there!"
В этом случае myString — это переменная типа String.
Вы можете объявить переменную типа String и указать его тип в одном предложении, а затем инициализировать переменную в другом предложении в программе.
val myString: String ... .. ... myString = "Howdy"
Чтобы получить доступ к элементам строки (символам), используйте оператор индексации. Например,
val myString = "Hey there!" val item = myString[2]
В этом случае переменная item содержит третий символ строки myString, который является y. Это связано с тем, что в Kotlin индексация начинается с 0, а не с 1.
val myString = "Hey there!" var item: Char item = myString[0] // item = 'H' item = myString[9] // item = '!' item = myString[10] // Ошибка! Индекс строки выходит за пределы диапазона item = myString[-1] // Ошибка! Индекс строки выходит за пределы диапазона
Если вам нужно пройтись по элементам строки, вы можете использоватьЦикл forЛегкоРеализация。
fun main(args: Array<String>) { val myString = "Hey!" for (item in myString) { println(item) } }
При выполнении программы выводится:
H e y !
Как и в Java, строки в Kotlin неизменны. Это означает, что вы не можете изменить отдельный символ строки. Например,
var myString = "Hey!" myString[0] = 'h' // Ошибка! Строки
Но если переменная строки была объявлена с помощью ключевого слова var, то ее можно перераспределить. (Рекомендованная литература:Kotlin var Vs val)
fun main(args: Array<String>) { var myString = "Hey!" println("myString = $myString") myString = "Hello!" println("myString = $myString") }
При выполнении программы выводится:
myString = Hey! myString = Hello!
Литerral - это форма представления фиксированного значения в исходном коде. Например, "Hey there!" - это строка, которая напрямую出现在 в программе и не требует вычислений (напримерПеременная)
В Kotlin есть два типа строковых литералов:
Символы, которые могут быть escaped в строке. Например:
val myString = "Hey there!\n"
Здесь, \n является символом escape, который используется для вставки символы перевода строки в тексте.
Вот список поддерживаемых Kotlin символов escape:
\t - вставка табулятора
\b - вставка символы отступа
\n - вставка символы перевода строки
\r - вставка каретки
\' - вставка одинарной кавычки
\" - вставка двойной кавычки
\\ - вставка обратной косой черты
\$ - вставка символа доллара
Исходная строка может содержать символы перевода строки (не символы перевода строки) и любой текст. Исходная строка отделена тремя двойными кавычками """. Например:
fun main(args: Array<String>) { val myString = """ for (character in "Hey!") println(character) """ print(myString) }
При выполнении программы выводится:
for (character in "Hey!") println(character)
Вы можете использовать функцию trimMargin() для удаления начальных пробелов в исходной строке. Например:
fun main(args: Array<String>) { println("Вывод без использования функции trimMargin():") val myString = """ |Kotlin интересен. |Kotlin спонсируется и разрабатывается JetBrains. """ println(myString) println("Вывод с использованием функции trimMargin():\n") println(myString.trimMargin()) }
При выполнении программы выводится:
Вывод без использования функции trimMargin(): |Kotlin интересен. |Kotlin спонсируется и разрабатывается JetBrains. Вывод с использованием функции trimMargin(): Kotlin интересен. Kotlin спонсируется и разрабатывается JetBrains.
По умолчанию, функция trimMargin() использует | в качестве префикса отступа. Но вы можете изменить его, передав новому строке.
fun main(args: Array<String>) { val myString = """ !!! Kotlin интересен. !!! Kotlin спонсируется и разрабатывается JetBrains. """ println(myString.trimMargin("!!! ")) }
При выполнении программы выводится:
Kotlin интересен. Kotlin спонсируется и разрабатывается JetBrains.
Kotlin имеет замечательную функцию, называемую строковыми шаблонами, которая позволяет строкам содержать шаблонные выражения.
Выражения строковых шаблонов начинаются с знака $. Вот несколько примеров:
fun main(args: Array<String>) { val myInt = 5; val myString = "myInt = $myInt" println(myString) }
При выполнении программы выводится:
myInt = 5
Это потому, что выражение $myInt (выражение, начинающееся с знака $) в строке evaluates и присоединяется к строке.
fun main(args: Array<String>) { val a = 5 val b = 6 val myString = """ |${if (a > b) a else b} """ println("Больше число: ${myString.trimMargin()}") }
При выполнении программы выводится:
Больше число: 6
Так как литералы в Kotlin реализованы как экземпляры класса String, вы можете использовать несколько методов и атрибутов этого класса.
Атрибут length — возвращает длину последовательности символов строки.
Функция compareTo — сравнивает этот строковый объект с заданным объектом. Если объект равен заданному объекту, то возвращается 0.
Функция get — возвращает символ по заданному индексу. Вы можете использовать оператор индексации вместо функции get, так как оператор индексации внутренне вызывает функцию get.
Функция plus — возвращает новую строку, полученную из соединения этой строки с переданной в функцию строкой. Вы можете использовать оператор + вместо функции plus, так как + оператор на самом деле вызывает функцию plus.
Функция subSequence — возвращает новую последовательность символов из заданного начала и конца индексов.
fun main(args: Array<String>) { val s1 = "Hey there!" val s2 = "Hey there!" var result: String println("Длина строки s1 составляет — ${s1.length}.") result = if (s1.compareTo(s2) == 0) "равны" else "неравны" println("Строки s1 и s2 равны — $result.") // s1.get(2) эквивалентно s1[2] println("Третий символ — ${s1.get(2)}.") println("Подстрока — это \ }
При выполнении программы выводится:
Длина строки s1 составляет 10. Строки s1 и s2 равны. Третий символ — y. result = Hey there! How are you? Подстрока — это "the"