استبدال النصوص الفرعية
جزء من قسم المنطق والتدفق في رحلة Swift على Coddy — الدرس 5 من 56.
تُعيد replacingOccurrences(of:with:) سلسلة نصية جديدة مع استبدال كل تطابق لسلسلة فرعية بأخرى:
let phone = "555-123-4567"
let digits = phone.replacingOccurrences(of: "-", with: "")
print(digits) // "5551234567"مثل طرق الحالة (case methods)، فإنها تعيد String جديداً؛ ويبقى النص الأصلي دون تغيير. قم بتسلسل الاستدعاءات عندما تحتاج إلى إزالة عدة أنماط:
let messy = " 555-123 4567 "
let clean = messy
.replacingOccurrences(of: "-", with: "")
.replacingOccurrences(of: " ", with: "")
print(clean) // "5551234567"يعني إجراء استبدالين القيام بمرورين على السلسلة النصية. بالنسبة للكود الحساس للأداء على السلاسل النصية الضخمة، يُفضل إجراء تمريرة filter واحدة على الأحرف؛ أما بالنسبة للعمل اليومي، فإن عمليات الاستبدال المتسلسلة جيدة وتُقرأ بوضوح.
التحدي
مبتدئاقرأ سطراً واحداً من المدخلات. تعامل معه كجملة وقم بإنتاج slug مناسب لرابط URL عن طريق:
- تحويل المدخلات إلى أحرف صغيرة
- استبدال كل مسافة بـ
- - إزالة كل من الرموز
!و?و.
اطبع الـ slug الناتج.
بالنسبة للمدخل Hello World!، يكون المخرج hello-world. وبالنسبة لـ Is Swift Fun?، يكون المخرج is-swift-fun.
ورقة مرجعية
replacingOccurrences(of:with:) تُرجع سلسلة نصية جديدة مع استبدال كل تطابق:
let digits = "555-123-4567".replacingOccurrences(of: "-", with: "")
// "5551234567"استخدم استدعاءات متسلسلة للتعامل مع أنماط متعددة:
let clean = "555-123 4567"
.replacingOccurrences(of: "-", with: "")
.replacingOccurrences(of: " ", with: "")جرّب بنفسك
let line = readLine()!
// TODO: تحويل الأحرف إلى صغيرة، استبدال المسافات بواصلات، حذف الرموز ! ? .
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق والتدفق
1النصوص بعمق
العد والفهارسحالة الأحرف وإزالة الفراغاتالبحث في النصوصتقسيم ودمج النصوصاستبدال النصوص الفرعيةمراجعة - التحقق من اسم المستخدم4المجموعات
إنشاء المجموعاتالاتحاد والتقاطعالطرح والفرق المتماثلالمجموعات الجزئية والشاملةمراجعة - تصفية الـ Tag7مشروع - متتبع العادات
نظرة عامة على المشروعتحديد كمكتمل2النطاقات والخطوات
المغلقة مقابل نصف المفتوحةالخطوة (Stride)دوال النطاقاتالنطاقات في Switchملخص - شبكة التقويم5الدوال من الرتبة العليا - الجزء الأول
MapFilterReduceربط Map و Filter و Reduceمراجعة - إحصائيات الكلمات