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ștereversed();reverse()există peStringBuilderș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.