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

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

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

تماماً مثل المصفوفات، تعد السلاسل النصية في Swift تسلسلات من الأحرف التي يمكنك التكرار عليها. وهذا يجعل من السهل معالجة النص حرفاً بحرف باستخدام حلقة for-in المألوفة.

عندما تقوم بالتكرار عبر سلسلة نصية، تمنحك Swift كل حرف بالترتيب:

let word = "Hello"

for char in word {
    print(char)
}
// H
// e
// l
// l
// o

كل char في الحلقة هو من نوع Character، وليس String. هذا التمييز مهم عندما تحتاج إلى مقارنة أو معالجة الأحرف الفردية.

يمكنك استخدام هذه التقنية لتحليل النص، مثل عد أحرف معينة:

let message = "banana"
var countA = 0

for char in message {
    if char == "a" {
        countA += 1
    }
}

print(countA)  // 3

لاحظ أنه عند مقارنة حرف، نستخدم حرفاً واحداً بين علامتي اقتباس مثل "a". تعالج Swift هذا تلقائياً كـ Character عند المقارنة مع حرف آخر.

challenge icon

التحدي

سهل

اكتب دالة countVowels تستقبل text وتعيد العدد الإجمالي للحروف المتحركة (vowels) في السلسلة النصية.

قم بالمرور على كل حرف في السلسلة النصية وعدّ كم منها حروف متحركة (a, e, i, o, u). قم بعدّ الحروف المتحركة الصغيرة والكبيرة على حد سواء.

المعاملات:

  • text (String): السلسلة النصية المراد تحليلها

القيمة المعادة: العدد الإجمالي للحروف المتحركة الموجودة في السلسلة النصية (Int)

مثال: إذا كانت text هي "Hello World"، يجب أن تعيد الدالة 3 (الحروف المتحركة هي e, o, o).

ورقة مرجعية

يمكنك التكرار عبر سلسلة نصية باستخدام حلقة for-in لمعالجة كل حرف:

let word = "Hello"

for char in word {
    print(char)
}
// H
// e
// l
// l
// o

كل char في الحلقة هو من النوع Character، وليس String.

يمكنك مقارنة الأحرف مباشرة في الشروط:

let message = "banana"
var countA = 0

for char in message {
    if char == "a" {
        countA += 1
    }
}

print(countA)  // 3

جرّب بنفسك

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

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

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