CodeBlanks Logo Icon CodeBlanks

Özet - İleri dize

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

main.dart
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

main.dart
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

main.dart
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

main.dart
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?

main.dart
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

Başlangıç bölümündeki tüm dersler