Строковые и строковые шаблоны Kotlin (с примерами)

В этой статье вы узнаете о строках Kotlin, строковых шаблонах и некоторых часто используемых строковых свойствах и функциях с помощью примеров.

Котлин Строка

Строки - это последовательность символов. Например, "Hello there!"это строковый литерал.

В Kotlin все строки являются объектами Stringкласса. Это означает, что строковые литералы, например "Hello there!", реализованы как экземпляры этого класса.

Как создать строковую переменную?

Вот как вы можете определить Stringпеременную в Kotlin. Например,

 val myString = "Привет!"

Здесь myString - это переменная типа String.

Вы можете объявить переменную типа Stringи указать ее тип в одном операторе, а затем инициализировать переменную в другом операторе в программе.

 val myString: String… myString = "Привет"

Как получить доступ к символам строки?

Для доступа к элементам (символу) строки используется индексный оператор доступа. Например,

val myString = "Привет!" val item = myString (2)

Здесь переменная item содержит y, третий символ строки myString. Это потому, что индексирование в Kotlin начинается с 0, а не с 1.

val myString = "Привет!" var item: Char item = myString (0) // элемент содержит 'H' item = myString (9) // элемент содержит '!' 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" 

Это escape-символ, который вставляет новую строку в текст, где он появляется.

Вот список escape-символов, поддерживаемых в Kotlin:

  • - Вкладка "Вставки"
  •  - Вставляет пробел
  • - Вставляет новую строку
  • - Вставляет возврат каретки
  • \' - Вставляет символ одинарной кавычки
  • " - Вставляет символ двойной кавычки
  • \ - Вставляет обратную косую черту
  • $ - Вставляет символ доллара

2. Необработанная строка

Необработанная строка может содержать символы новой строки (не escape-символ новой строки) и произвольный текст. Необработанная строка отделяется тройной кавычкой """. Например,

 fun main(args: Array) ( val myString = """ for (character in "Hey!") println(character) """ print(myString) )

Когда вы запустите программу, вывод будет:

 for (символ в "Эй!") 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 интересен. | Kotlin спонсируется и разрабатывается JetBrains. Вывод с использованием функции trimMargin: Kotlin интересен. 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 = Привет! Как дела? Подстрока "the"

Посетите класс Kotlin String для получения дополнительной информации о свойствах расширения, расширениях, функциях и конструкторах.

Интересные статьи...