Menu
Coddy logo textTech

Bölme ve Birleştirme

Coddy'nin Swift Journey'sinin Mantık ve Akış bölümünün bir parçası — ders 4 / 56.

Sınırlandırılmış metinlerle çalışmak için iki günlük araç. Her ikisi de zaten içe aktarılmış olan Foundation'dan gelir.

components(separatedBy:), bir dizeyi verdiğiniz herhangi bir ayırıcıya göre bir String dizisine böler:

let csv = "red,green,blue"
let parts = csv.components(separatedBy: ",")
print(parts)                       // ["red", "green", "blue"]

Bunun tersi, herhangi bir [String] üzerindeki joined(separator:) yöntemidir:

let words = ["swift", "is", "fun"]
let line = words.joined(separator: " ")
print(line)                        // "swift is fun"

Bunları sık sık birleştireceksiniz: split ile ayırın, map ile dönüştürün, tekrar birleştirin. Bir [String] üzerindeki map işleminin sonucu hala bir [String]'dir, bu nedenle joined doğrudan çalışır.

challenge icon

Görev

Kolay

Tek bir giriş satırı okuyun: virgülle ayrılmış kelimelerden oluşan bir liste.

Üç satır yazdırın:

  1. , karakterine göre ayırdıktan sonraki kelime sayısı
  2. Kelimelerin büyük harf ile ve aralarına > (boşluk, büyüktür işareti, boşluk) eklenerek yeniden birleştirilmiş hali
  3. Listedeki (ayırma işleminden sonraki) en uzun kelime. Eğer iki kelime aynı uzunluktaysa, ilk görüneni kullanın.

red,green,blue girişi için çıktı şöyledir:

3
RED > GREEN > BLUE
green

Kopya kağıdı

Bir dizeyi components(separatedBy:) kullanarak bir diziye ayırın:

let parts = "red,green,blue".components(separatedBy: ",")
// ["red", "green", "blue"]

Bir dize dizisini joined(separator:) kullanarak yeniden birleştirin:

let line = ["swift", "is", "fun"].joined(separator: " ")
// "swift is fun"

Yaygın desen — ayır, map ile dönüştür, yeniden birleştir:

let result = "red,green,blue"
    .components(separatedBy: ",")
    .map { $0.uppercased() }
    .joined(separator: " > ")
// "RED > GREEN > BLUE"

Kendin dene

let line = readLine()!
let words = line.components(separatedBy: ",")

// YAPILACAK: sayıyı, " > " ile birleştirilmiş-büyük harfli halini, ilk en uzun kelimeyi yazdır
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık ve Akış bölümündeki tüm dersler