String.length în Kotlin

length dă numărul de caractere dintr-un text, iar text[i] (get) returnează caracterul de la poziția i.

Sintaxă
val String.length: Int
operator fun String.get(index: Int): Char   // text[index]

Ce face String.length

length este o proprietate, nu o funcție: scrii text.length, fără paranteze. Valoarea este numărul de caractere Char din text. Literele românești (ă, î, ș, ț) contează ca un singur caracter, la fel ca spațiile și semnele de punctuație.

Caracterele unui text se numerotează de la 0. Primul este text[0], ultimul este text[text.length - 1]. Parantezele pătrate apelează de fapt funcția get: text[2] și text.get(2) fac același lucru și returnează un Char, nu un String.

Un index în afara textului (negativ sau mai mare decât length - 1) aruncă StringIndexOutOfBoundsException. Dacă nu ești sigur că poziția există, folosește getOrNull(i), care returnează null.

Parametri

Parametru Descriere
index: Int Poziția caracterului, numărată de la 0.

Ce returnează

length: numărul de caractere (Int). get: caracterul de la poziția dată (Char).

Exemple

Exemplul 1: Lungimea unor texte

Diacriticele și spațiile se numără ca orice alt caracter. Textul gol are lungimea 0.

fun main() {
    val oras = "Iași"
    val propozitie = "Bună ziua, Ana!"
    println("$oras are ${oras.length} caractere")
    println("Propoziția are ${propozitie.length} caractere")
    println("Text gol: ${"".length}")
}

Rezultat

Iași are 4 caractere
Propoziția are 15 caractere
Text gol: 0

Exemplul 2: Primul și ultimul caracter

text[0] este primul caracter, iar text[text.length - 1] ultimul. get face același lucru ca parantezele pătrate.

fun main() {
    val nume = "Ștefan"
    println("Prima literă: ${nume[0]}")
    println("Ultima literă: ${nume[nume.length - 1]}")
    println("A treia literă: ${nume.get(2)}")
    println("Poziția 10 există? ${nume.getOrNull(10)}")
}

Rezultat

Prima literă: Ș
Ultima literă: n
A treia literă: e
Poziția 10 există? null

Exemplul 3: Parcurgerea caracterelor cu index

indices dă intervalul 0 până la length - 1, așa că bucla nu iese niciodată din text.

fun main() {
    val cod = "RO42"
    for (i in cod.indices) {
        println("Poziția $i: ${cod[i]}")
    }
}

Rezultat

Poziția 0: R
Poziția 1: O
Poziția 2: 4
Poziția 3: 2

Greșeli frecvente

  • Scrii text.length() ca în Java. În Kotlin length este proprietate: scrie text.length.
  • Folosești text[text.length] pentru ultimul caracter. Ultimul index este length - 1; poți folosi și text.last().
  • Compari text[0] == "A". text[0] este Char, deci se compară cu 'A' (ghilimele simple).

Comenzi înrudite

  • String.isEmpty: isEmpty verifică dacă textul nu are niciun caracter; isBlank verifică dacă are doar spații sau e gol.
  • String.first: first returnează primul caracter al textului (sau primul care respectă o condiție), last ultimul.
  • String.substring: Returnează bucata de text dintre două poziții: de la startIndex inclusiv până la endIndex exclusiv.
  • Char.isDigit: Verifică tipul unui caracter: cifră (isDigit), literă (isLetter), literă sau cifră, spațiu alb (isWhitespace).