تقسيم ودمج النصوص
جزء من قسم المنطق والتدفق في رحلة 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 مباشرةً.
التحدي
سهلاقرأ سطرًا واحدًا من الإدخال: قائمة كلمات مفصولة بفواصل.
اطبع ثلاثة أسطر:
- عدد الكلمات بعد التقسيم عند
, - الكلمات بعد إعادة وصلها باستخدام
>(مسافة، أكبر من، مسافة)، بأحرف كبيرة - أطول كلمة من القائمة (بعد التقسيم). إذا تعادلت كلمتان، فاستخدم الكلمة التي تظهر first.
بالنسبة إلى الإدخال red,green,blue، يكون الناتج:
3
RED > GREEN > BLUE
greenجرّب بنفسك
let line = readLine()!
let words = line.components(separatedBy: ",")
// TODO: اطبع العدد، الموصولة بأحرف كبيرة مع " > "، أول أطول كلمة
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق والتدفق
1النصوص بعمق
العد والفهارسحالة الأحرف وإزالة الفراغاتالبحث في النصوصتقسيم ودمج النصوصاستبدال النصوص الفرعيةمراجعة - التحقق من اسم المستخدم4المجموعات
إنشاء المجموعاتالاتحاد والتقاطعالطرح والفرق المتماثلالمجموعات الجزئية والشاملةمراجعة - تصفية الـ Tag7مشروع - متتبع العادات
نظرة عامة على المشروعتحديد كمكتمل2النطاقات والخطوات
المغلقة مقابل نصف المفتوحةالخطوة (Stride)دوال النطاقاتالنطاقات في Switchملخص - شبكة التقويم5الدوال من الرتبة العليا - الجزء الأول
MapFilterReduceربط Map و Filter و Reduceمراجعة - إحصائيات الكلماتتدرّب بنفسك: Playground لـ Swift