В 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. Для соседних задач пригодятся эти разборы:
- Coroutines в Kotlin: первый async-пример
- Как сделать анимацию в Kotlin: простой пример для Android Compose
- Inline в Kotlin: что это и когда использовать
- Kotlin Android: первый экран без перегруза



