Как перевернуть строку в Kotlin: reversed и пример с проверкой

В Kotlin строку проще всего перевернуть методом `reversed()`.

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


В Kotlin строку проще всего перевернуть методом reversed()

fun main() {
    val text = "Kotlin"
    val reversed = text.reversed()

    println(reversed)
}

Вывод:

niltoK

Метод возвращает новую строку. Исходная строка text не меняется, потому что строки в Kotlin неизменяемые

Пример с вводом пользователя

fun main() {
    print("Введите строку: ")
    val input = readln()

    println("Наоборот: ${input.reversed()}")
}

Проверка:

Введите строку: привет
Наоборот: тевирп

Для обычных учебных задач этого достаточно

Ручной вариант для понимания

Если хотите понять механику, можно пройти строку с конца к началу

fun reverseManually(text: String): String {
    val result = StringBuilder()

    for (index in text.length - 1 downTo 0) {
        result.append(text[index])
    }

    return result.toString()
}

fun main() {
    println(reverseManually("Kotlin"))
}

Вывод:

niltoK

Здесь StringBuilder нужен, чтобы не создавать много промежуточных строк в цикле. Для маленьких примеров разница почти незаметна, но привычка полезная

Как проверить себя

Попробуйте такие строки:

println("abc".reversed())
println("12345".reversed())
println("".reversed())

Ожидаемый вывод:

cba
54321

Пустая строка останется пустой. Это нормальный результат, а не ошибка

Нюанс с Unicode

Для обычных русских и английских слов reversed() ведет себя ожидаемо. Но сложные символы, например некоторые эмодзи или буквы с комбинируемыми знаками, могут состоять из нескольких кодовых единиц. В таких случаях простое переворачивание строки может дать визуально странный результат

Для большинства задач новичка это не проблема, но если вы пишете редактор текста, чат или обработку пользовательских имен, Unicode нужно изучать отдельно

Где это пригодится

Переворот строки часто встречается в учебных задачах: проверить палиндром, разобрать индексы строки, потренироваться с циклами. Например:

fun isPalindrome(text: String): Boolean {
    val normalized = text.lowercase()
    return normalized == normalized.reversed()
}

fun main() {
    println(isPalindrome("level"))
    println(isPalindrome("kotlin"))
}

Вывод:

true
false

Для реального текста с пробелами и знаками препинания нужна дополнительная нормализация, но для первого упражнения это понятный старт

Можно усложнить проверку: перед сравнением убрать пробелы и привести строку к нижнему регистру. Так учебный пример станет ближе к реальным пользовательским данным

Частые ошибки

Думать, что text изменился

val text = "abc"
text.reversed()
println(text)

Вывод будет abc. Нужно сохранить результат:

val reversed = text.reversed()

Путать reverse и reversed

У строк используйте reversed(). В коллекциях похожие операции могут называться по-разному в зависимости от того, меняется объект или возвращается новая версия

Что почитать дальше по Kotlin

Если нужен общий маршрут по теме, откройте рубрику Kotlin. Для соседних задач пригодятся эти разборы:

Оцените статью
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x