--- baslik: Metin işlemleri bolum: Temeller ozet: buyut, kucult, kirp, bol, birlestir, degistir, bul ve diğer metin yöntemleri --- Metinlerin kendi yöntemleri (metotları) vardır: `metin.yontem()` biçiminde çağrılır. Kullanıcının yazdığını temizlemek, bir cümleyi kelimelere ayırmak, bir sözcüğü değiştirmek bu yöntemlerle yapılır. ## Türkçe büyük ve küçük harf `buyut()` bütün harfleri büyütür, `kucult()` küçültür. Türkçe kurallara uyar: `i` büyüyünce `İ`, `I` küçülünce `ı` olur. ```kbl yazdir("istanbul".buyut()) yazdir("ILIK IRMAK".kucult()) yazdir("şişli öğüt".buyut()) ``` ```cikti İSTANBUL ılık ırmak ŞİŞLİ ÖĞÜT ``` Büyük/küçük harfe aldırmadan karşılaştırmak için iki tarafı da küçültürsün. ```kbl girilen = "İZMİR" yazdir(girilen.kucult() == "izmir") ``` ```cikti doğru ``` ## Boşlukları temizlemek: kirp `kirp()` baştaki ve sondaki boşlukları atar. Kullanıcı girdisinde çok işe yarar. ```kbl ham = " Merhaba Dünya " yazdir("[" + ham + "]") yazdir("[" + ham.kirp() + "]") ``` ```cikti [ Merhaba Dünya ] [Merhaba Dünya] ``` ## Aramak | Yöntem | Sorusu | Sonuç | |---|---|---| | `icerir(x)` | x geçiyor mu? | `dogru`/`yanlis` | | `ile_baslar(x)` | x ile mi başlıyor? | `dogru`/`yanlis` | | `ile_biter(x)` | x ile mi bitiyor? | `dogru`/`yanlis` | | `bul(x)` | x nerede başlıyor? | indeks, yoksa `-1` | ```kbl cumle = "Ankara Türkiye'nin başkentidir" yazdir(cumle.icerir("başkent")) yazdir(cumle.ile_baslar("Ankara")) yazdir(cumle.ile_biter("dir")) yazdir(cumle.bul("Türkiye")) yazdir(cumle.bul("İzmir")) ``` ```cikti doğru doğru doğru 7 -1 ``` ## Değiştirmek: degistir `degistir(eski, yeni)` metindeki her `eski`yi `yeni` ile değiştirir. Asıl metin değişmez, yeni bir metin döner. ```kbl duyuru = "Toplantı salı günü, salı saat 10'da." yeni = duyuru.degistir("salı", "çarşamba") yazdir(yeni) ``` ```cikti Toplantı çarşamba günü, çarşamba saat 10'da. ``` ## Parça almak `bastan(n)` ilk n karakteri, `sondan(n)` son n karakteri, `dilim(baslangic, adet)` belli bir yerden başlayan parçayı verir. ```kbl kelime = "Karadeniz" yazdir(kelime.bastan(4)) yazdir(kelime.sondan(5)) yazdir(kelime.dilim(2, 3)) ``` ```cikti Kara deniz rad ``` ## Bölmek ve birleştirmek `bol(ayrac)` metni parçalara ayırıp bir liste verir. `birlestir(ayrac)` ise bir metin listesini tek metne çevirir. ```kbl satir = "Ayşe;Kaya;Eskişehir" alanlar = satir.bol(";") yazdir(alanlar) yazdir(alanlar[2]) yazdir(alanlar.birlestir(" | ")) ``` ```cikti [Ayşe, Kaya, Eskişehir] Eskişehir Ayşe | Kaya | Eskişehir ``` ## Diğer yararlı yöntemler ```kbl yazdir("=".tekrarla(20)) yazdir("".bos_mu()) yazdir("abc".bos_mu()) ``` ```cikti ==================== doğru yanlış ``` > **Dikkat:** Yöntem adlarına dikkat: büyütme `buyut()`, küçültme `kucult()`, uzunluk `uzunluk()`'tür. `buyuk()`, `kucuk()` diye yöntem yoktur; derleyici "metinde 'buyuk' diye bir metot yok" der ve "'buyut' mi demek istediniz?" diye önerir. ## Yöntemleri zincirlemek Her yöntem yeni bir metin döndürdüğü için arka arkaya yazabilirsin. ```kbl girdi = " ankara " yazdir(girdi.kirp().buyut()) ``` ```cikti ANKARA ``` ## Alıştırma ```alistirma `eposta` değişkenindeki boşlukları temizle, harflerini küçült ve sonucu yazdır. Ardından temizlenmiş adresin `@` içerip içermediğini yazdır. %%% eposta = " Ayse.Kaya@Ornek.com " # buraya yaz %%% eposta = " Ayse.Kaya@Ornek.com " temiz = eposta.kirp().kucult() yazdir(temiz) yazdir(temiz.icerir("@")) %%% ayse.kaya@ornek.com doğru ``` ```alistirma `liste` metnindeki ürünler virgülle ayrılmış. Metni böl, ürün sayısını yazdır, sonra ürünleri ` - ` ile birleştirip yazdır. %%% liste = "ekmek,süt,peynir,zeytin" # buraya yaz %%% liste = "ekmek,süt,peynir,zeytin" urunler = liste.bol(",") yazdir(urunler.uzunluk()) yazdir(urunler.birlestir(" - ")) %%% 4 ekmek - süt - peynir - zeytin ```