CodeBlanks Logo Icon CodeBlanks

String yardımcıları

String işleme fonksiyonlarını ekler ve test edersin.

String extension function

Bir extension function, mevcut bir türe dışarıdan metot ekler. Tanımda fonksiyon adından önce alıcı tür (ReceiverType.) yazılır. Türün kendisi değişmez.

Örnek: fun String.titleCase(): String { return split(" ").joinToString(" ") { it.replaceFirstChar(Char::uppercase) } }. Bu fonksiyon String'e titleCase metodunu ekler. "merhaba dünya".titleCase() çağrısı Merhaba Dünya döndürür. Extension fonksiyonlar statik olarak çözümlenir; türün kendisinde değişiklik yapmaz.

titleCase fonksiyonu

Bu ders, String türüne titleCase extension'ını ekler. Bu fonksiyon her kelimenin ilk harfini büyütür, gerisini küçültür.

Örnek: fun String.titleCase(): String { return split(" ").joinToString(" ") { word -> word.lowercase().replaceFirstChar { it.uppercase() } } }. split(" ") ile kelimelere ayır, joinToString(" ") ile geri birleştir. replaceFirstChar ilk harfi büyütür. Çağrı: "merhaba dünya".titleCase(). Bu, başlık biçiminde çıktı verir.

Uygulama String.titleCase extension'ı ekle

Mevcut Helpers nesnesinin yanına bir String.titleCase() extension fonksiyonu ekle. Gövdesi split(" ").joinToString(" ") { word -> word.lowercase().replaceFirstChar { it.uppercase() } } döndürsün. main içinde önce Helpers.greet("Ayşe"), sonra "merhaba dünya".titleCase() çağrılarını println ile yazdır.

Başlangıç kodu

Main.kt
object Helpers {
    fun greet(name: String): String {
        return "Merhaba, $name!"
    }
}

// String extension: titleCase
// kelimelerin ilk harfini büyüt
// main'de greet ve titleCase çağır

Örnek çözüm

Main.kt
object Helpers {
    fun greet(name: String): String {
        return "Merhaba, $name!"
    }
}

fun String.titleCase(): String {
    return split(" ").joinToString(" ") { word ->
        word.lowercase().replaceFirstChar { it.uppercase() }
    }
}

fun main() {
    println(Helpers.greet("Ayşe"))
    println("merhaba dünya".titleCase())
}

Beklenen çıktı

Merhaba, Ayşe!
Merhaba Dünya

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Extension parçalarını eşle

Kavram Anlamı
fun String.titleCase() Alıcı tür ve metot
split(" ") Boşluktan bölme
joinToString(" ") Birleştirme
"abc".titleCase() Çağrı

2 Bir extension fonksiyon <code>String</code> türüne <code>titleCase</code> metodunu eklemek için nasıl tanımlanır?

  • fun String.titleCase(): String Doğru cevap
  • class String { fun titleCase() }
  • fun titleCase(): String
  • extension String.titleCase()

Açıklama: extension'da alıcı tür fonksiyon adından önce yazılır.

3 Extension fonksiyon imzasını tamamla

Soru
fun ____.titleCase(): String {
    return split(" ").joinToString(" ") { word ->
        word.lowercase().replaceFirstChar { it.uppercase() }
    }
}
Cevap
fun String.titleCase(): String {
    return split(" ").joinToString(" ") { word ->
        word.lowercase().replaceFirstChar { it.uppercase() }
    }
}

Açıklama: String alıcı tür, titleCase extension metodudur.

Orta seviye bölümündeki tüm dersler