Шаблони рядків і рядків Kotlin (з прикладами)

У цій статті ви дізнаєтесь про рядки 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 of get function as index access operator internally calls get 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 of plus function as + operator calls plus 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 для отримання додаткової інформації про властивості розширення, розширення, функції та конструктори.

Цікаві статті...