Ce face String.commonPrefixWith
"Constanța".commonPrefixWith("Constantin") returnează "Constan", adică partea de la început care este identică în ambele texte. Dacă textele încep diferit, rezultatul este textul gol.
commonSuffixWith caută partea comună de la final. Ambele au ignoreCase. Sunt utile pentru completare automată, pentru găsirea folderului comun al mai multor căi sau pentru a compara coduri.
Parametri
| Parametru | Descriere |
|---|---|
other |
Al doilea text. |
ignoreCase |
Dacă true, nu contează literele mari sau mici. |
Ce returnează
Un String cu partea comună (poate fi gol).
Exemple
Exemplul 1: Începuturi și finaluri comune
Al treilea apel dă textul gol, pentru că literele diferă de la început.
fun main() {
println("Constanța".commonPrefixWith("Constantin"))
println("Brașov".commonPrefixWith("BRAȘOV", ignoreCase = true))
println("Iași".commonPrefixWith("Cluj"))
println("cântare".commonSuffixWith("plimbare"))
}
Rezultat
Constan
Brașov
are
Exemplul 2: Folderul comun al unor fișiere
Calculăm prefixul comun al tuturor căilor cu reduce, apoi tăiem până la ultimul /.
fun main() {
val cai = listOf(
"/home/ana/proiect/src/main.kt",
"/home/ana/proiect/src/util.kt",
"/home/ana/proiect/README.md",
)
val prefix = cai.reduce { a, b -> a.commonPrefixWith(b) }
println(prefix)
println(prefix.substringBeforeLast("/"))
}
Rezultat
/home/ana/proiect/
/home/ana/proiect
Exemplul 3: Completare automată
Dacă toate orașele care se potrivesc au un început comun mai lung, îl completăm automat.
fun main() {
val orase = listOf("Bistrița", "București", "Bucureștii Noi", "Buzău", "Brașov")
val scris = "Buc"
val potriviri = orase.filter { it.startsWith(scris) }
val completare = potriviri.reduce { a, b -> a.commonPrefixWith(b) }
println("Potriviri: $potriviri")
println("Completare: $completare")
}
Rezultat
Potriviri: [București, Bucureștii Noi]
Completare: București
Greșeli frecvente
- Aștepți ca funcția să găsească o parte comună oriunde în text. Ea compară doar de la început (sau de la final pentru commonSuffixWith).
Comenzi înrudite
String.startsWith: startsWith verifică dacă textul începe cu un prefix, endsWith dacă se termină cu un sufix.String.substringBefore: Returnează partea de text dinaintea sau de după un separator, fără să calculezi poziții.String.equals: equals compară două texte (opțional fără să conteze literele mari); compareTo le compară alfabetic.