Stringler Üzerinde Yineleme P2
Coddy'nin Swift Journey'sinin Temeller bölümünün bir parçası — ders 72 / 86.
Dizilerle hem indeksi hem de öğeyi almak için enumerated() yöntemini kullandığımız gibi, aynısını dizelerle de yapabiliriz. Bu, yineleme yaparken her bir karakterin konumunu bilmeniz gerektiğinde kullanışlıdır.
let word = "Swift"
for (index, char) in word.enumerated() {
print("\(index): \(char)")
}
// 0: S
// 1: w
// 2: i
// 3: f
// 4: tBu teknik, karakter konumlarına dayalı yeni dizeler oluştururken yardımcı olur. Örneğin, yalnızca çift dizinlerdeki karakterleri tutmak isteyebilirsiniz:
let text = "abcdef"
var result = ""
for (index, char) in text.enumerated() {
if index % 2 == 0 {
result += String(char)
}
}
print(result) // aceEklemeden önce char değerini String(char) kullanarak bir String türüne dönüştürdüğümüze dikkat edin. Bu gereklidir çünkü result bir String türündedir ve += operatörünü kullanarak ona doğrudan bir Character ekleyemezsiniz.
Görev
Kolaytext alan ve yalnızca tek dizinlerdeki karakterleri içeren yeni bir dize döndüren bir extractOddIndexChars fonksiyonu yazın.
Dize boyunca yineleme yapmak ve dizinin tek olduğu (1, 3, 5 vb.) karakterleri içeren bir sonuç oluşturmak için enumerated() kullanın.
Parametreler:
text(String): İşlenecek giriş dizesi
Döndürür: Yalnızca tek dizinlerdeki karakterleri içeren bir dize (String)
Örnek: Eğer text "abcdefg" ise, fonksiyon "bdf" (1, 3 ve 5. dizinlerdeki karakterler) döndürmelidir.
Kopya kağıdı
Yineleme yaparken hem indeksi hem de karakteri elde etmek için dizelerle enumerated() kullanın:
let word = "Swift"
for (index, char) in word.enumerated() {
print("\(index): \(char)")
}
// 0: S
// 1: w
// 2: i
// 3: f
// 4: tKarakter konumlarına göre dizeler oluştururken, ekleme yapmadan önce Character türünü String türüne dönüştürün:
let text = "abcdef"
var result = ""
for (index, char) in text.enumerated() {
if index % 2 == 0 {
result += String(char)
}
}
print(result) // ace+= ile ekleme yaparken bir Character değerini String değerine dönüştürmek için String(char) kullanın.
Kendin dene
func extractOddIndexChars(text: String) -> String {
// Kodu buraya yazın
}
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Temeller bölümündeki tüm dersler
4Operatörler Bölüm 1
Aritmetik OperatörlerModül OperatörüBileşik AtamaÖzet - Basit MatematikKarşılaştırma Operatörleri7Temel Giriş/Çıkış
Print FonksiyonuString InterpolationReadLine GirişiTür DönüşümüÖzet - 120'ye KadarÖzet - Doğru veya Yanlış10Fonksiyonlar
Fonksiyon TanımlamaParametreler ve ArgümanlarDönüş DeğerleriArgüman EtiketleriÖzet - Sigma FonksiyonuÖzet - Doğrulama FonksiyonuVarsayılan Değerler13Diziler Üzerinde Yineleme
Elemanlar Üzerinde YinelemeEnumerate MetoduStringler Üzerinde Yineleme P1Stringler Üzerinde Yineleme P22Değişkenler
Let vs VarTip BelirteçleriSayılarStringBooleanİsimlendirme KurallarıÖzet - Değişkenleri Başlatma5Operatörler Bölüm 2
Mantıksal Operatörler Bölüm 1Mantıksal Operatörler Bölüm 2Özet - Basit MantıkMantıksal Operatörler Bölüm 3Ternary Operatör8Hesap Paylaşım Hesaplayıcısı
Hoş Geldiniz MesajıGirdi Alma14İleri Seviye Diziler
Dizi Dilimleme Bölüm 1Dizi Dilimleme Bölüm 2Sıralı Yapı OperatörleriContains Metodu3Opsiyoneller
Opsiyoneller NedirIf Let ile UnwrappingGuard LetNil Coalescing OperatörüÖzet - Güvenli Unwrapping6Karar Yapıları
If İfadesiIf - ElseÖzet - Basit Hesap MakinesiSwitch İfadesiAralıklı Switch Kullanımı9Döngüler
For-In DöngüsüWhile DöngüsüRepeat-While DöngüsüBreakContinueÖzet - FaktöriyelDöngülerde Aralıklarİç İçe DöngülerÖzet - Dinamik Girdi