Özet - İleri dize
- Dart kursu
- Başlangıç
- Ders 93/116
- 5 dk
split, RegExp ve StringBuffer'ı birleştirerek bir CSV ayrıştırıcı yazarsın.
Özet - İleri dize
Bu grupta dize işlemenin dört güçlü aracını gördün: split ve join dize-liste dönüşümü, replaceAll toplu değiştirme, trim ve padLeft biçimleme, RegExp desen arama, StringBuffer verimli biriktirme. Şimdi hepsini bir CSV ayrıştırıcıda birleştireceğiz.
CSV biçimi her satırda virgülle ayrılmış alanlar barındırır. split ile alanları ayırırsın, trim ile boşlukları temizlersin, RegExp ile rakamları doğrularsın ve StringBuffer ile yeni bir biçimli çıktı üretirsin. Bu, dize araçlarını gerçek bir görevde birlikte görmektir.
Uygulama Sıra sende: CSV satırını ayrıştır
"ayse, 28 , istanbul" satırını virgülle böl, her parçayı trim ile temizle ve StringBuffer ile "ayse|28|istanbul" biçiminde birleştir. Sonucu print ile yazdır.
Başlangıç kodu
void main() {
// "ayse, 28 , istanbul" satırını virgülle böl
// Her parçayı trim ile temizle
// StringBuffer ile "|" ayraçlı birleştir ve yazdır
}Örnek çözüm
void main() {
final satır = "ayse, 28 , istanbul";
final parcalar = satır.split(",").map((s) => s.trim()).toList();
final sb = StringBuffer();
for (var i = 0; i < parcalar.length; i++) {
if (i > 0) sb.write("|");
sb.write(parcalar[i]);
}
print(sb.toString());
}Beklenen çıktı
ayse|28|istanbul
Uygulama Sıra sende: alanları doğrula ve biçimle
"kitap, 120 , 2024" satırını böl, her parçayı trim ile temizle. Üçüncü parçanın RegExp(r"\d{4}") ile dört rakam olduğunu hasMatch ile denetle ve sonuçu print ile yazdır.
Başlangıç kodu
void main() {
// "kitap, 120 , 2024" satırını böl ve trim ile temizle
// Üçüncü parçayı dört rakam deseni ile sorgula
// Sonucu yazdır
}Örnek çözüm
void main() {
final satır = "kitap, 120 , 2024";
final parcalar = satır.split(",").map((s) => s.trim()).toList();
print(RegExp(r"\d{4}").hasMatch(parcalar[2]));
}Beklenen çıktı
true
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Bir CSV satırındaki alanları ayırmak için ilk adım?
final satır = "ayse,28,istanbul";
final alanlar = satır._____(",");- trim
- split Doğru cevap
- join
- pad
Açıklama: split alanları listeye ayırır.
2 CSV araçlarını eşleştir
| Kavram | Anlamı |
|---|---|
split(",") |
alanları böler |
trim() |
boşlukları keser |
RegExp(r"\d+") |
yaş alanını doğrular |
StringBuffer |
çıktıyı biriktirir |