التكرار عبر النصوص - الجزء الأول
جزء من قسم الأساسيات في رحلة 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 عند المقارنة مع حرف آخر.
التحدي
سهلاكتب دالة 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 {
// اكتب الكود هنا
}
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
4المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمةالإسناد المركبمراجعة - عمليات رياضية بسيطةمعاملات المقارنة7أساسيات الإدخال والإخراج
دالة الطباعةتضمين النصوصإدخال ReadLineتحويل الأنواعمراجعة - حتى 120مراجعة - True أو False10الدوال
تعريف دالةالمعاملات والوسائطقيم الإرجاعتسميات الوسائطمراجعة - دالة Sigmaمراجعة - دالة Validationالقيم الافتراضية13التكرار عبر المتسلسلات
التكرار عبر العناصرطريقة التعداد (enumerate)التكرار عبر النصوص - الجزء الأولالتكرار عبر النصوص - الجزء الثاني2المتغيرات
Let مقابل Varتوصيف الأنواع (Type Annotations)الأرقامStringBooleanقواعد التسميةمراجعة - تهيئة المتغيرات5المعاملات - الجزء الثاني
المعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيمراجعة - المنطق البسيطالمعاملات المنطقية - الجزء الثالثالمعامل الثلاثي (Ternary Operator)8حاسبة تقسيم الفاتورة
رسالة الترحيبالحصول على المدخلات3القيم الاختيارية (Optionals)
ما هي القيم الاختياريةفك القيم باستخدام If Letاستخدام Guard Letمعامل دمج Nilمراجعة - فك القيم بأمان9حلقات التكرار
حلقة For-Inحلقة Whileحلقة Repeat-WhileBreakContinueمراجعة - المضروب (Factorial)النطاقات في حلقات التكرارالحلقات المتداخلةمراجعة - الإدخال الديناميكي (Dynamic Input)