freeCodeCamp/guide/russian/kotlin/strings/index.md

255 lines
5.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
title: Strings
localeTitle: Строки
---
# Строки
Строка - один из базовых типов данных в языке программирования Kotlin. Строки представлены типом `String`. Строки неизменяемы. Kotlin имеет богатый API для удобной работы со строками.
### Основное использование
#### Объявление
```kotlin
// явное объявление типа
var firstName : String = "Elon"
// или неявное объявление типа (оба варианта скомпилируются)
val lastName = "Musk"
```
Кроме того, обратите внимание на использование ключевого слова `val` при объявлении переменной, вот как оно себя ведет:
```kotlin
firstName = "Mark" // переменная может быть изменена
lastName = "Zuckerberg" // переменная не может быть изменена
lastName = 12 // Ошибка: несоответствие типов
```
#### Сложение строк (конкатенация)
В нижеприведённом примере мы прибавляем `Int` к `String`, что приведёт к выводу `String`.
```kotlin
var str = "abc" + 1
println(str + "def")
```
Вывод:
```shell
abc1def
```
Даже без явного преобразования значения `Int` (в данном случае 1) в объект `String` в результате получается `String`.
#### Строка с несколькими строками
Kotlin позволяет объявлять переменные `String` с несколькими строками, используя тройные кавычки вместо одинарных:
```kotlin
var str = """
This is line 1
This is line 2
This is line 3
"""
println(str)
```
Вывод:
```shell
This is line 1
This is line 2
This is line 3
```
или с `.trimIndent()`
Использование `trimIndent()` дополнительно помогает обеспечить чистый выходной формат, удалив лишние и ненужные отступы в каждой строке. Изучите фрагмент кода ниже:
```kotlin
var str = """
This is line 1
This is line 2
This is line 3
""".trimIndent()
println(str)
```
Вывод:
```shell
This is line 1
This is line 2
This is line 3
```
### Доступ к символам строки
#### Доступ по индексу
Программисты могут обращаться к элементам (символам) строки, используя оператор доступа по индексу:
```kotlin
var str = "Example"
println(str[2])
```
Вывод:
```shell
a
```
Это похоже на доступ к элементу из массива. Другой пример:
```kotlin
var str = "Example"
println(str[9]) // Ошибка: индекс выходит за границы
```
#### Итерация через строку
Элементы строки - это символы, к которым можно получить доступ через индекс: `s[i]` .
```kotlin
var str = "Example"
for (c in str) {
println(c)
}
```
Вывод:
```shell
E
x
a
m
p
l
e
```
### Неизменяемость строки
Как и в Java, вы не можете изменять отдельные элементы `String`:
```kotlin
var str = "Example"
str[2] = "b" // Ошибка
```
#### Повторное присвоение значений String
```kotlin
var str = "Example"
println(str)
str = "Example was changed"
println(str)
```
Вывод:
```shell
Example
Example was changed
```
### Свойства строки
#### Определение длины строки
```kotlin
var str = "Example"
println(str.length)
```
Вывод:
```shell
7
```
### Функции строки
Это некоторые из обычных функций `String`, доступных в текущей версии Kotlin.
### compareTo
Сравнивает данный объект с другим указанным объектом. Возвращает ноль, если данный объект равен указанному другому объекту, отрицательное число, если данный объект "меньше" другого, или положительное число, если объект "больше" другого.
```kotlin
var str = "Example"
var str2 = "Example123"
var str3 = "Example12345"
println(str.compareTo(str2))
println(str.compareTo(str3))
println(str3.compareTo(str))
println(str.compareTo("Example"))
```
Вывод:
```shell
-3
-5
5
0 # Equal
```
### equals
Указывает, является ли объект `String` в точности равным другому объекту `String`
```kotlin
var str = "Example"
var str2 = "Example2"
println(str.equals("Example"))
println(str2.equals("Example"))
```
Вывод:
```shell
true
false
```
### get
Возвращает символ в указанном индексе в этой последовательности символов.
``` kotlin
var str = "Example"
println(str.get(3))
```
Вывод:
```shell
m
```
### toString
Возвращает строковое представление объекта.
```kotlin
println(9.toString() + 10)
println(9 + 10)
```
Вывод:
```shell
"910"
19
```
#### Ресурсы
* [Основные типы языка Kotlin](https://kotlinlang.org/docs/reference/basic-types.html)
* [String в Kotlin](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)