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

التكرار عبر المحارف (strsplit)

جزء من قسم Fundamentals في رحلة R على Coddy — الدرس 65 من 78.

ماذا لو كنت بحاجة إلى معالجة كل حرف في سلسلة نصية بشكل فردي؟ على عكس المتجهات (vectors)، لا يمكنك التكرار مباشرة عبر أحرف السلسلة النصية في لغة R. تحل الدالة strsplit() هذه المشكلة عن طريق تقسيم السلسلة النصية إلى متجه من الأحرف.

تأخذ الدالة strsplit() وسيطين: السلسلة النصية المراد تقسيمها والفاصل. للتقسيم إلى أحرف فردية، استخدم سلسلة نصية فارغة "" كفاصل:

word <- "hello"
chars <- strsplit(word, "")[[1]]
print(chars)

الناتج:

[1] "h" "e" "l" "l" "o"

لاحظ الـ [[1]] في النهاية. هذا لأن strsplit() تُرجع قائمة، ونحتاج إلى استخراج العنصر الأول للحصول على متجه الأحرف الخاص بنا. بمجرد حصولك على الأحرف كمتجه، يمكنك التكرار عليها باستخدام التقنيات التي تعلمتها بالفعل:

word <- "R"
chars <- strsplit(word, "")[[1]]
for (char in chars) {
  print(char)
}

المخرجات:

[1] "R"

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

challenge icon

التحدي

سهل

ستتلقى سطراً واحداً من الإدخال يحتوي على كلمة (على سبيل المثال، programming).

باستخدام strsplit() لتقسيم السلسلة النصية إلى أحرف فردية:

  1. قم بتقسيم كلمة الإدخال إلى متجه (vector) من الأحرف
  2. قم بالمرور عبر كل حرف في المتجه باستخدام حلقة تكرارية (loop)
  3. احسب عدد مرات ظهور حرف "a" في الكلمة (حساس لحالة الأحرف)
  4. اطبع كل حرف في سطر مستقل باستخدام print()
  5. بعد انتهاء الحلقة، اطبع العدد باستخدام cat() بالتنسيق التالي: Count of 'a': X متبوعاً بسطر جديد

على سبيل المثال، إذا كان الإدخال هو:

banana

يجب أن يكون المخرج:

[1] "b"
[1] "a"
[1] "n"
[1] "a"
[1] "n"
[1] "a"
Count of 'a': 3

الشرح: يتم تقسيم كلمة "banana" إلى أحرف c("b", "a", "n", "a", "n", "a"). يتم طباعة كل حرف، ويظهر حرف "a" ثلاث مرات.

جرّب بنفسك

# قراءة المدخلات
con <- file("stdin", "r")
word <- suppressWarnings(readLines(con, n = 1))

# تهيئة عداد للحرف 'a'
count_a <- 0

# TODO: اكتب كودك أدناه
# 1. استخدم strsplit() لتقسيم الكلمة إلى أحرف فردية
# 2. قم بالمرور (loop) عبر كل حرف
# 3. اطبع كل حرف باستخدام print()
# 4. احسب عدد مرات ظهور 'a'

# إخراج عدد مرات ظهور 'a'
cat("Count of 'a': ", count_a, "\n", sep = "")
quiz iconاختبر نفسك

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

جميع دروس Fundamentals