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

التكرار عبر النصوص

جزء من قسم الأساسيات في رحلة Ruby على Coddy — الدرس 67 من 88.

تماماً مثل المصفوفات، يمكن تكرار السلاسل النصية في Ruby حرفاً بحرف. تتيح لك طريقة each_char معالجة كل حرف في السلسلة النصية بشكل فردي.

إليك كيف يعمل ذلك:

word = "Ruby"

word.each_char do |char|
  puts char
end

يقوم هذا بإخراج كل حرف في سطر منفصل: R، u، b، y. يحمل متغير الكتلة char حرفاً واحداً في كل مرة بينما ينتقل المكرر (iterator) عبر السلسلة النصية.

إذا كنت بحاجة إلى كل من الحرف وموقعه، فاستخدم each_char.with_index:

word = "Hi"

word.each_char.with_index do |char, index|
  puts "#{index}: #{char}"
end

هذا ينتج:

0: H
1: i

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

letters = "abc".chars
puts letters  # المخرجات: a, b, c

هذه الطرق مفيدة عندما تحتاج إلى تحليل النص، أو عد أحرف معينة، أو تحويل السلاسل النصية حرفاً بحرف.

challenge icon

التحدي

سهل

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

استخدم each_char.with_index للتكرار عبر السلسلة النصية وطباعة كل حرف مع موقعه. يجب أن يتبع كل سطر هذا التنسيق: Position 0: h

بعد طباعة جميع الأحرف مع مواقعها، اطبع العدد الإجمالي للأحرف في السلسلة النصية في سطر جديد بهذا التنسيق: Total characters: 5

على سبيل المثال، إذا كانت المدخلات hello، يجب أن تكون المخرجات:

Position 0: h
Position 1: e
Position 2: l
Position 3: l
Position 4: o
Total characters: 5

إذا كانت المدخلات Ruby، يجب أن تكون المخرجات:

Position 0: R
Position 1: u
Position 2: b
Position 3: y
Total characters: 4

إذا كانت المدخلات code، يجب أن تكون المخرجات:

Position 0: c
Position 1: o
Position 2: d
Position 3: e
Total characters: 4

إذا كانت المدخلات A، يجب أن تكون المخرجات:

Position 0: A
Total characters: 1

ورقة مرجعية

استخدم each_char للتكرار عبر كل حرف في سلسلة نصية:

word = "Ruby"

word.each_char do |char|
  puts char
end

استخدم each_char.with_index للوصول إلى كل من الحرف وموقعه:

word = "Hi"

word.each_char.with_index do |char, index|
  puts "#{index}: #{char}"
end

استخدم chars لتحويل سلسلة نصية إلى مصفوفة من الأحرف:

letters = "abc".chars
puts letters  # المخرجات: a, b, c

جرّب بنفسك

# قراءة المدخلات
str = gets.chomp

# TODO: اكتب الكود الخاص بك أدناه
# استخدم each_char.with_index للتكرار عبر السلسلة النصية
# اطبع كل حرف مع موقعه بالتنسيق: Position X: char


# اطبع العدد الإجمالي للأحرف بالتنسيق: Total characters: X
quiz iconاختبر نفسك

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

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