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

التكرار عبر النصوص - الجزء الثاني

جزء من قسم الأساسيات في رحلة Swift على Coddy — الدرس 72 من 86.

تماماً كما استخدمنا enumerated() مع المصفوفات للحصول على كل من الفهرس والعنصر، يمكننا فعل الشيء نفسه مع السلاسل النصية. هذا مفيد عندما تحتاج إلى معرفة موضع كل حرف أثناء التكرار.

let word = "Swift"

for (index, char) in word.enumerated() {
    print("\(index): \(char)")
}
// 0: S
// 1: w
// 2: i
// 3: f
// 4: t

تعتبر هذه التقنية مفيدة عند بناء سلاسل نصية جديدة بناءً على مواضع الأحرف. على سبيل المثال، قد ترغب في الاحتفاظ بالأحرف الموجودة في الفهارس الزوجية فقط:

let text = "abcdef"
var result = ""

for (index, char) in text.enumerated() {
    if index % 2 == 0 {
        result += String(char)
    }
}

print(result)  // ace

لاحظ أننا نقوم بتحويل char إلى String باستخدام String(char) قبل إلحاقه. هذا ضروري لأن result هو String، ولا يمكنك إلحاق Character به مباشرة باستخدام عامل التشغيل +=.

challenge icon

التحدي

سهل

اكتب دالة extractOddIndexChars تأخذ text وتعيد سلسلة نصية جديدة تحتوي فقط على الأحرف الموجودة في الفهارس الفردية.

استخدم enumerated() للتكرار عبر السلسلة النصية وبناء نتيجة تحتوي على الأحرف التي يكون فهرسها فردياً (1، 3، 5، إلخ).

المعاملات:

  • text (String): السلسلة النصية المدخلة لمعالجتها

القيمة المرجعة: سلسلة نصية تحتوي فقط على الأحرف الموجودة في الفهارس الفردية (String)

مثال: إذا كانت text هي "abcdefg"، يجب أن تعيد الدالة "bdf" (الأحرف في الفهارس 1، 3، و 5).

ورقة مرجعية

استخدم enumerated() مع السلاسل النصية للحصول على كل من الفهرس والحرف أثناء التكرار:

let word = "Swift"

for (index, char) in word.enumerated() {
    print("\(index): \(char)")
}
// 0: S
// 1: w
// 2: i
// 3: f
// 4: t

عند بناء سلاسل نصية بناءً على مواقع الأحرف، قم بتحويل Character إلى String قبل الإلحاق:

let text = "abcdef"
var result = ""

for (index, char) in text.enumerated() {
    if index % 2 == 0 {
        result += String(char)
    }
}

print(result)  // ace

استخدم String(char) لتحويل Character إلى String عند الإلحاق باستخدام +=.

جرّب بنفسك

func extractOddIndexChars(text: String) -> String {
    // اكتب الكود هنا
}
quiz iconاختبر نفسك

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

جميع دروس الأساسيات