Ce face String.toCharArray
toCharArray() returnează un CharArray nou cu toate caracterele textului. Spre deosebire de String, tabloul se poate modifica: poți schimba un caracter (litere[0] = 'X') sau îl poți sorta pe loc cu sort().
Înapoi la text ajungi cu concatToString() sau String(tablou). Dacă vrei doar să parcurgi caracterele, nu ai nevoie de tablou: un for (c in text) merge direct pe String. Pentru o listă folosește toList().
Ce returnează
Un CharArray nou, cu aceeași lungime ca textul.
Exemple
Exemplul 1: Modificarea unui caracter
Un String nu poate fi modificat, dar tabloul obținut din el da.
fun main() {
val litere = "pisică".toCharArray()
litere[0] = 'P'
println(litere.concatToString())
println(litere.size)
}
Rezultat
Pisică
6
Exemplul 2: Anagrame cu sortare
Două cuvinte sunt anagrame dacă au aceleași litere; după sortare, tablourile sunt identice.
fun esteAnagrama(a: String, b: String): Boolean {
val x = a.lowercase().toCharArray()
val y = b.lowercase().toCharArray()
x.sort()
y.sort()
return x.contentEquals(y)
}
fun main() {
println(esteAnagrama("Roma", "amor"))
println(esteAnagrama("Iași", "Cluj"))
}
Rezultat
true
false
Exemplul 3: Literele unice, în ordine
toCharArray urmat de distinct și sorted dă literele folosite.
fun main() {
val cuvant = "banana"
val unice = cuvant.toCharArray().distinct().sorted()
println(unice)
println(unice.joinToString(""))
}
Rezultat
[a, b, n]
abn
Greșeli frecvente
- Afișezi un
CharArraycuprintln(tablou)și primești ceva ca[C@1b6d3586. Transformă-l întâi:concatToString()saucontentToString(). - Compari două tablouri cu
==, care verifică dacă sunt același obiect. Pentru conținut foloseștecontentEquals.
Comenzi înrudite
String.reversed: Returnează textul cu caracterele în ordine inversă, de la ultimul la primul.Array.sort: Sortează crescător elementele tabloului chiar în tablou (îl modifică, nu creează altul).Array.contentToString: contentToString afișează elementele tabloului ca text; contentEquals compară două tablouri element cu element.