contains ve indexOf
- Dart kursu
- Başlangıç
- Ders 34/116
- 5 dk
contains ve indexOf ile arama öğrenirsin.
contains ve indexOf
Bir alt dizenin String içinde var olup olmadığını .contains() metodu sorar: "merhaba".contains("haba") sonucu true'dur. Dönüş türü bool'dur; ya true ya false.
Alt dizenin konumunu öğrenmek istersen .indexOf() kullanırsın: "merhaba".indexOf("haba") sonucu 3'tür. Dizin sayımı sıfırdan başlar. Eğer alt dize bulunamazsa .indexOf() -1 döndürür.
Bulunamazsa -1
.indexOf() alt dize bulunamazsa -1 döndürür. Bu değer, bir alt dizenin var olup olmadığını kontrol etmek için sıkça kullanılır: if (email.indexOf("@") != -1) ile bir metnin e-posta olabileceğini kabaca yoklayabilirsin.
Daha okunaklı bir yol, .contains() kullanmaktır: if (email.contains("@")). İki yazım da aynı sonucu verir; .contains() daha nettir. Pratik ilke: yalnızca var/yok soruyorsan .contains(), konum gerekiyorsa .indexOf() kullan.
Uygulama @ dizinini bul
String türünde email değişkeni tanımla ve değeri "ayse@dart.com" olsun. at adında yeni bir değişken tanımla ve email.indexOf("@") sonucunu ata. Sonra print(at); ile yazdır. Çıktı tek satırda 4 olmalı.
Başlangıç kodu
// email değişkenini tanımla, indexOf ile @ dizinini at değişkenine ata ve yazdırÖrnek çözüm
String email = "ayse@dart.com";
var at = email.indexOf("@");
print(at);Beklenen çıktı
4
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 "merhaba".contains("haba") sonucu ne olur?
"merhaba".contains("haba")- true Doğru cevap
- false
- 3
- -1
Açıklama: "haba" alt dizesi "merhaba" içinde var; sonuç true.
2 Metodu işlevine eşle
| Kavram | Anlamı |
|---|---|
contains(x) |
Var mı (bool) |
indexOf(x) |
İlk dizin (-1 yoksa) |
substring(0, 3) |
Parça alır |
.length |
Karakter sayısı |
3 indexOf çağrısını yaz
String email = "a@b.com";
print(email____);
String email = "a@b.com";
print(email.indexOf("@"));
Açıklama: .indexOf("@") @ işaretinin dizinini verir.