String.removePrefix în Kotlin

Elimină un prefix de la început, un sufix de la final sau ambele, doar dacă ele chiar există.

Sintaxă
fun String.removePrefix(prefix: CharSequence): String
fun String.removeSuffix(suffix: CharSequence): String
fun String.removeSurrounding(delimiter: CharSequence): String
fun String.removeSurrounding(prefix: CharSequence, suffix: CharSequence): String

Ce face String.removePrefix

removePrefix("+40") returnează textul fără +40 de la început, dacă textul începe cu el; altfel îl returnează neschimbat. removeSuffix(".txt") face același lucru pentru final. Se elimină o singură apariție.

removeSurrounding("\"") elimină ghilimelele doar dacă textul are ghilimele la ambele capete. Varianta cu două argumente primește prefixul și sufixul separat, de exemplu removeSurrounding("(", ")").

Parametri

Parametru Descriere
prefix / suffix Textul eliminat de la început, respectiv de la final.
delimiter Pentru removeSurrounding: textul care trebuie să fie la ambele capete.

Ce returnează

Un String nou (sau același text, dacă nu s-a eliminat nimic).

Exemple

Exemplul 1: Prefixe și sufixe

Al doilea număr nu începe cu „+40”, deci rămâne neschimbat. La fel, „date.csv” nu se termină cu „.txt”.

fun main() {
    println("+40722123456".removePrefix("+40"))
    println("0722123456".removePrefix("+40"))
    println("notite.txt".removeSuffix(".txt"))
    println("date.csv".removeSuffix(".txt"))
}

Rezultat

722123456
0722123456
notite
date.csv

Exemplul 2: Ghilimele și paranteze

removeSurrounding lucrează doar când ambele capete se potrivesc; „”Iași” are ghilimele doar în față, deci rămâne neschimbat. Cu două argumente, prefixul și sufixul pot fi diferite.

fun main() {
    println("\"Cluj-Napoca\"".removeSurrounding("\""))
    println("\"Iași".removeSurrounding("\""))
    println("<b>Important</b>".removeSurrounding("<b>", "</b>"))
    println("[admin]".removeSurrounding("[", "]"))
}

Rezultat

Cluj-Napoca
"Iași
Important
admin

Exemplul 3: Curățarea unor coduri de produs

Eliminăm prefixul comun „PROD-” și sufixul „-RO” din fiecare cod.

fun main() {
    val coduri = listOf("PROD-1001-RO", "PROD-2002", "3003-RO")
    for (c in coduri) {
        println(c.removePrefix("PROD-").removeSuffix("-RO"))
    }
}

Rezultat

1001
2002
3003

Greșeli frecvente

  • Folosești substring(3) ca să scoți un prefix. Dacă prefixul lipsește, tai litere bune; removePrefix verifică întâi.
  • Crezi că removePrefix elimină toate aparițiile de la început. "0007".removePrefix("0") dă "007"; pentru toate, folosește trimStart('0').

Comenzi înrudite

  • String.startsWith: startsWith verifică dacă textul începe cu un prefix, endsWith dacă se termină cu un sufix.
  • String.trim: trim elimină spațiile albe de la începutul și sfârșitul textului; trimStart doar de la început, trimEnd doar de la final.
  • String.substringBefore: Returnează partea de text dinaintea sau de după un separator, fără să calculezi poziții.
  • String.replace: Înlocuiește toate aparițiile unui text sau caracter cu altul și returnează textul nou.