Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

تقسيم ودمج النصوص

جزء من قسم المنطق والتدفق في رحلة Swift على Coddy — الدرس 4 من 56.

أداتان يوميتان للعمل مع النصوص المحددة. كلتاهما تأتيان من Foundation، والتي تم استيرادها بالفعل.

تقوم components(separatedBy:) بتقسيم سلسلة نصية إلى مصفوفة من الـ String بناءً على أي فاصل تمرره:

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

العكس هو joined(separator:) على أي [String]:

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

غالبًا ما ستقوم بدمجها: التقسيم، والتحويل باستخدام map، ثم إعادة تجميعها معًا. إن نتيجة map على [String] تظل [String]، لذا فإن joined تعمل بشكل مباشر.

challenge icon

التحدي

سهل

اقرأ سطراً واحداً من المدخلات: قائمة كلمات مفصولة بفاصلة.

اطبع ثلاثة أسطر:

  1. عدد الكلمات بعد التقسيم بناءً على ,
  2. الكلمات مجمعة مرة أخرى باستخدام > (مسافة، علامة أكبر من، مسافة)، بـ أحرف كبيرة
  3. أطول كلمة في القائمة (بعد التقسيم). إذا تساوت كلمتان في الطول، استخدم الكلمة التي تظهر أولاً.

للمدخلات red,green,blue، المخرجات هي:

3
RED > GREEN > BLUE
green

ورقة مرجعية

تقسيم سلسلة نصية إلى مصفوفة باستخدام components(separatedBy:):

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

إعادة دمج مصفوفة من السلاسل النصية باستخدام joined(separator:):

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

نمط شائع — التقسيم، التحويل باستخدام map، ثم إعادة الدمج:

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

جرّب بنفسك

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

// مهام: طباعة العدد، والكلمات مدمجة بحروف كبيرة مفصولة بـ " > "، وأول أطول كلمة
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس المنطق والتدفق