Как струны работают в Котлине

Kotlin имеет пять основных типов данных. В предыдущем посте мы обсудили первый базовый тип в Котлине, числа. На этот раз речь пойдет о струнах.

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

Синтаксис для строк прост, просто заключите символы в двойные кавычки, и у вас будет строка:

val string = "Hello, world!"

Свойства струн

1. Они неизменны

В программировании, когда мы говорим о «неизменности», мы имеем в виду невозможность изменить объект. Возьмем, например, следующую строку:

var myDescription = "I am a programmer"

Невозможно изменить эту строку, у нас нет функции, в которой вы могли бы указать код: «После шестого символа переменной вставьте слово отлично». Если вы хотите изменить строку, вам нужно будет переназначить ее.

myDescription = "I am a great programmer"

Важное примечание: новички часто заблуждаются, думая, что приведенное выше утверждение является мутацией, но это не так.

Что происходит с приведенной выше строкой, так это то, что мы «переназначаем» переменную, что означает, что мы уничтожаем предыдущее значение, которое у нее было, и назначаем ему новое, которое может быть похожим или совершенно другим.

2. Строки можно итерировать, и к ним можно получить доступ через индексирование.

Строки в Kotlin ведут себя так же, как и массив, вы можете получить к ним доступ через логику с нулевым индексом:

var anotherString = "I like programming in Kotlin" anotherString[3] // This would give the character 'i' as a result

Кроме того, вы можете проверить каждый символ с помощью цикла:

for (letter in anotherString) { 
  println(letter) 
}

Совет от профессионала: итерация по строкам описанным выше способом очень полезна в алгоритмических задачах, которые очень часто встречаются на собеседованиях по кодированию.

3. Строки можно объединять.

Это не рекомендуется, но это особенность Kotlin Strings. Если вы используете оператор +, вы можете объединить, что аналогично «соединению» двух строк вместе.

var name = "Evana" 
var lastName = "Margain" var fullName = name + " " + lastname 
// result: "Evana Margain"

Теперь вы должны подумать: «Это выглядит очень полезным, почему не рекомендуется?»

Есть и другие способы добиться того же. На самом деле, в программировании большинство задач можно решить разными способами. Рекомендуемый метод называется Строковые шаблоны.

4. Строковые шаблоны

Если вы когда-либо использовали слово шаблон в другом контексте, вы знаете, что шаблон является базовым форматом для чего-то, в данном случае для String. Давайте посмотрим на пример шаблона String:

val language = "Kotlin" println("My favorite language is $language") val anotherLanguage = "Swift" println("My favorite language is $anotherLanguage")

Можете ли вы угадать результаты приведенного выше кода? В первой строке будет напечатано «Мой любимый язык - Kotlin», а во второй - «Мой любимый язык - Swift».

Если вы внимательно понаблюдаете, способ вставить переменную в строку - это добавить знак доллара перед именем переменной. Легко, не правда ли?

Если вы хотите добавить одну переменную к другой, помните, что вы всегда должны предпочитать строковые шаблоны конкатенации.

5. Строковые литералы: экранированные строки

Когда вы используете строки, иногда вам нужно использовать символы, которые могут сбить с толку компилятор, например:

val famousQuote = ""Be yourself; everyone else is already taken." ― Oscar Wilde"

Если компьютер попытается интерпретировать приведенный выше код, он подумает, что вы закрываете свою строку, в то время как на самом деле вы хотите поместить двойные кавычки как часть своей строки.

Приведенный выше код недействителен, но заставить его работать легко, просто добавьте обратную косую черту после символа.

val famousQuote = "\"Be yourself; everyone else is already taken.\" ― Oscar Wilde"

Теперь компилятор будет знать, что вы пытаетесь добавить двойные кавычки, и будет искать закрывающую кавычку, перед которой нет обратной косой черты.

Согласно документации Kotlin, доступные escape-последовательности: \t, \b, \n, \r, \', \", \\ и \$. Но вам не обязательно этому учиться, есть еще более простой способ, взгляните на следующую часть.

6. Строковые литералы: необработанные строки

Другой способ включения символов, которые обычно являются частью кода, - это необработанные строки. Давайте посмотрим на пример:

""" 
"Be yourself; everyone else is already taken." ― Oscar Wilde 
"""

Как вы можете видеть в приведенном выше коде, необработанные строки начинаются с трех кавычек и заканчиваются еще тремя, просто убедитесь, что вы поместили кавычки в отдельную строку.

Теперь между ними можно поставить любого персонажа. Если вы добавите перерыв, он также будет соблюден. Это функция не во многих языках программирования, воспользуйтесь ею! Иногда попытка убежать от многих персонажей раздражает и расстраивает.

Поздравляю! Это все, что вам нужно знать о строках в Котлине! Как видите, Kotlin - очень простой язык, но «с большой силой приходит большая ответственность», так что не отказывайтесь от своего пути обучения Kotlin!

До скорого!