String.reversed în Kotlin

Returnează textul cu caracterele în ordine inversă, de la ultimul la primul.

Sintaxă
fun String.reversed(): String

Ce face String.reversed

"Iași".reversed() returnează "ișaI". Textul original rămâne neschimbat. Funcția este utilă pentru verificarea palindroamelor (cuvinte care se citesc la fel din ambele sensuri) și pentru exerciții cu cifrele unui număr.

Inversarea se face pe caractere Char. Pentru emoji sau alte simboluri formate din două Char-uri, rezultatul poate arăta greșit. Literele românești cu diacritice sunt câte un singur caracter, deci se inversează corect.

Ce returnează

Un String nou, inversat.

Exemple

Exemplul 1: Inversarea unui text

Fiecare caracter își schimbă locul, inclusiv spațiile.

fun main() {
    println("Iași".reversed())
    println("Ana are mere".reversed())
}

Rezultat

ișaI
erem era anA

Exemplul 2: Palindroame

Eliminăm spațiile și literele mari, apoi comparăm textul cu inversul lui.

fun estePalindrom(text: String): Boolean {
    val curat = text.lowercase().filter { it.isLetter() }
    return curat == curat.reversed()
}

fun main() {
    for (t in listOf("cojoc", "Ele fac cafele", "Brașov")) {
        println("$t: ${estePalindrom(t)}")
    }
}

Rezultat

cojoc: true
Ele fac cafele: true
Brașov: false

Exemplul 3: Oglinditul unui număr

Transformăm numărul în text, îl inversăm și îl convertim înapoi.

fun main() {
    val n = 12340
    val oglindit = n.toString().reversed().toInt()
    println("Oglinditul lui $n este $oglindit")
}

Rezultat

Oglinditul lui 12340 este 4321

Greșeli frecvente

  • Scrii text.reverse(). Pe String funcția se numește reversed(); reverse() există pe StringBuilder și pe liste modificabile.
  • Uiți că zerourile de la final dispar la conversia în număr: oglinditul lui 12340 este 4321.

Comenzi înrudite

  • StringBuilder.insert: Modifică un StringBuilder pe loc: insert adaugă la o poziție, reverse inversează, deleteCharAt șterge un caracter, clear golește.
  • String.toCharArray: Copiază caracterele textului într-un CharArray, un tablou care, spre deosebire de String, poate fi modificat.
  • String.equals: equals compară două texte (opțional fără să conteze literele mari); compareTo le compară alfabetic.