У цій статті ви дізнаєтесь про рядки Kotlin, шаблони рядків та декілька часто використовуваних властивостей та функцій рядків за допомогою прикладів.
Струна Котліна
Рядки - це послідовність символів. Наприклад, "Hello there!"
це рядковий літерал.
У Kotlin всі рядки є об'єктами String
класу. Це означає, що рядкові літерали, такі як "Hello there!"
реалізовані як екземпляри цього класу.
Як створити змінну String?
Ось як ви можете визначити String
змінну в Kotlin. Наприклад,
val myString = "Привіт!"
Тут myString є змінною типу String
.
Ви можете оголосити змінну типу String
і вказати її тип в одному операторі, а ініціалізувати змінну в іншому операторі пізніше в програмі.
val myString: String … myString = "Привіт"
Як отримати доступ до символів рядка?
Для доступу до елементів (символу) рядка використовується оператор доступу до індексу. Наприклад,
val myString = "Привіт!" val item = myString (2)
Тут змінна item містить y, третій символ рядка myString. Це тому, що індексація в Котліні починається з 0, а не з 1.
val myString = "Привіт!" var item: Char item = myString (0) // елемент містить 'H' item = myString (9) // item містить '!' item = myString (10) // Помилка! Індекс рядка виходить за межі діапазону item = myString (-1) // Помилка! Рядковий індекс виходить за межі діапазону
Приклад: Ітерація через рядок
Якщо вам потрібно виконати ітерацію елементів рядка, ви можете легко це зробити, використовуючи цикл for.
fun main(args: Array) ( val myString = "Hey!" for (item in myString) ( println(item) ) )
Коли ви запускаєте програму, результат буде:
H e y !
Струни в Котліні незмінні
Як і Java, рядки незмінні в Kotlin. Це означає, що ви не можете змінити окремий символ рядка. Наприклад,
var myString = "Гей!" myString (0) = 'h' // Помилка! Струни
Однак ви можете знову призначити рядкову змінну, якщо ви оголосили змінну за допомогою ключового слова var
. ( Рекомендована література : Kotlin var Vs val)
Приклад: Перепризначення рядкової змінної.
fun main(args: Array) ( var myString = "Hey!" println("myString = $myString") myString = "Hello!" println("myString = $myString") )
Коли ви запускаєте програму, результат буде:
myString = Гей! myString = Привіт!
Струнні літерали
Літерал - це подання у вихідному коді фіксованого значення. Наприклад, "Hey there!"
це рядковий літерал, який з’являється безпосередньо в програмі, не вимагаючи обчислень (наприклад, змінних).
У Kotlin існує два типи рядкових літералів:
1. Рядок, що втік
Екранований рядок, можливо, мав символи екранування в них. Наприклад,
val myString = "Привіт! n"
Тут наведено символ переходу, який вставляє новий рядок у текст, де він з’являється.
Ось список символів втечі, які підтримує Kotlin:
- Вставляє зворотний простір
- Вставляє новий рядок
- Вставляє зворотну каретку
\'
- Вставляє символ з одинарними лапками"
- Вставляє символ подвійних лапок\
- Вставляє зворотну косу риску$
- Вставляє символ долара
2. Сира струна
Сирий рядок може містити нові рядки (не новий символ рядок) та довільний текст. Сирий рядок розмежовується потрійною лапкою """
. Наприклад,
fun main(args: Array) ( val myString = """ for (character in "Hey!") println(character) """ print(myString) )
Коли ви запускаєте програму, результат буде:
для (символ у "Гей!") println (символ)
Ви можете видалити пробіли з вихідного рядка за допомогою функції trimMargin (). Наприклад,
Приклад: Друк сирого рядка
fun main(args: Array) ( println("Output without using trimMargin function:") val myString = """ |Kotlin is interesting. |Kotlin is sponsored and developed by JetBrains. """ println(myString) println("Output using trimMargin function:") println(myString.trimMargin()) )
Коли ви запускаєте програму, результат буде:
Вихід без використання функції trimMargin: | Котлін цікавий. | Kotlin фінансується та розробляється JetBrains. Вихід за допомогою функції trimMargin: Котлін цікавий. Kotlin фінансується та розробляється JetBrains.
За замовчуванням trimMargin()
функція використовує | як префікс поля. Однак ви можете змінити його, передавши новий рядок цій функції.
Приклад: trimMargin () з аргументом
fun main(args: Array) ( val myString = """ !!! Kotlin is interesting. !!! Kotlin is sponsored and developed by JetBrains. """ println(myString.trimMargin("!!! ")) )
Коли ви запускаєте програму, результат буде:
Котлін цікавий. Kotlin фінансується та розробляється JetBrains.
Kotlin String Templates
Kotlin has an awesome feature called string templates that allows strings to contain template expressions.
A string template expression starts with a dollar sign $
. Here are few examples:
Example: Kotlin String Template
fun main(args: Array) ( val myInt = 5; val myString = "myInt = $myInt" println(myString) )
When you run the program, the output will be:
myInt = 5
It is because the expression $myInt (expression starting with $ sign) inside the string is evaluated and concatenated into the string.
Example: String Template With Raw String
fun main(args: Array) ( val a = 5 val b = 6 val myString = """ |$(if (a> b) a else b) """ println("Larger number is: $(myString.trimMargin())") )
When you run the program, the output will be:
Larger number is: 6
Few String Properties and Functions
Since literals in Kotlin are implemented as instances of String
class, you can use several methods and properties of this class.
length
property - returns the length of character sequence of an string.compareTo
function - compares this String (object) with the specified object. Returns 0 if the object is equal to the specfied object.get
function - returns character at the specified index.
You can use index access operator instead ofget
function as index access operator internally callsget
function.plus
function - returns a new string which is obtained by the concatenation of this string and the string passed to this function.
You can use+
operator instead ofplus
function as+
operator callsplus
function under the hood.subSequence
Function - returns a new character sequence starting at the specified start and end index.
Example: String Properties and Function
fun main(args: Array) ( val s1 = "Hey there!" val s2 = "Hey there!" var result: String println("Length of s1 string is $(s1.length).") result = if (s1.compareTo(s2) == 0) "equal" else "not equal" println("Strings s1 and s2 are $result.") // s1.get(2) is equivalent to s1(2) println("Third character is $(s1.get(2)).") result = s1.plus(" How are you?") // result = s1 + " How are you?" println("result = $result") println("Substring is "$(s1.subSequence(4, 7)) "") )
When you run the program, the output is:
Довжина рядка s1 дорівнює 10. Рядки s1 та s2 рівні. Третій символ - y. result = Привіт! Як справи? Підрядок - це "
Відвідайте клас Kotlin String для отримання додаткової інформації про властивості розширення, розширення, функції та конструктори.