177 lines
3.9 KiB
Markdown
177 lines
3.9 KiB
Markdown
---
|
|||
|
|
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 = " [email protected] "
|
||
|
|
# buraya yaz
|
||
|
|
%%%
|
||
|
|
eposta = " [email protected] "
|
||
|
|
temiz = eposta.kirp().kucult()
|
||
|
|
yazdir(temiz)
|
||
|
|
yazdir(temiz.icerir("@"))
|
||
|
|
%%%
|
||
|
|
[email protected]
|
||
|
|
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
|
||
|
|
```
|