البرمجة

السلاسل النصية في روبي

السلاسل النصية في لغة روبي: مفهومها وخصائصها

تُعتبر السلاسل النصية من أهم أنواع البيانات التي يتم التعامل معها في البرمجة، وذلك لأنها تستخدم بشكل مستمر لتمثيل النصوص والمعلومات التي يتم التعامل معها في التطبيقات المختلفة. ولغة البرمجة روبي (Ruby) ليست استثناء من هذا المبدأ، حيث توفر العديد من الأدوات والوظائف التي تسهل التعامل مع السلاسل النصية بشكل فعال. في هذا المقال، سنتناول جميع جوانب السلاسل النصية في لغة روبي، بدءاً من تعريفها وخصائصها، وصولاً إلى طرق التعامل معها واستخداماتها المختلفة.

تعريف السلسلة النصية في لغة روبي

السلسلة النصية في روبي هي عبارة عن مجموعة من الأحرف (Characters) المتتالية التي يتم تمثيلها داخل اقتباسات مفردة (‘) أو مزدوجة (“). يمكن للسلسلة النصية أن تحتوي على أي نوع من البيانات النصية، سواء كانت حروفاً، أرقاماً، أو حتى رموزاً خاصة. كما يمكن أن تكون السلسلة النصية فارغة أو تحتوي على نصوص معقدة وطويلة.

ruby
str1 = "مرحبًا بالعالم" str2 = 'أهلاً وسهلاً'

في الأمثلة السابقة، تم تعريف سلسلتين نصيتين باستخدام الاقتباسات المزدوجة والمفردة على التوالي.

أنواع السلاسل النصية في روبي

في لغة روبي، يمكننا التمييز بين نوعين من السلاسل النصية بناءً على نوع الاقتباسات المستخدمة:

  1. السلاسل النصية باستخدام الاقتباسات المزدوجة:

    هذه السلاسل تتيح تضمين متغيرات وتعابير داخل السلسلة باستخدام التفسير (interpolation). هذا يعني أنه يمكن إدراج قيم المتغيرات داخل السلسلة النصية مباشرة.

    ruby
    name = "عادل" greeting = "مرحبًا، اسمي #{name}" puts greeting # => مرحبًا، اسمي عادل

    في المثال أعلاه، تم استخدام #{} لإدراج قيمة المتغير name داخل السلسلة النصية.

  2. السلاسل النصية باستخدام الاقتباسات المفردة:

    السلاسل النصية التي يتم تعريفها باستخدام الاقتباسات المفردة لا تدعم التفسير. إذا حاولنا تضمين متغير داخل السلسلة النصية باستخدام الاقتباسات المفردة، فلن يتم استبداله بقيمته.

    ruby
    name = "عادل" greeting = 'مرحبًا، اسمي #{name}' puts greeting # => مرحبًا، اسمي #{name}

    كما نلاحظ، في هذه الحالة لم يتم تفسير المتغير داخل السلسلة النصية.

العمليات الأساسية على السلاسل النصية

تتيح لغة روبي عددًا من العمليات الأساسية التي يمكن تطبيقها على السلاسل النصية، والتي تشمل:

1. الدمج (Concatenation):

يمكن دمج السلاسل النصية باستخدام العامل +. هذه العملية تتيح دمج سلسلتين أو أكثر معاً لإنشاء سلسلة نصية جديدة.

ruby
greeting = "مرحبًا" name = "عادل" message = greeting + " " + name puts message # => مرحبًا عادل

2. التكرار (Repetition):

يمكن تكرار السلسلة النصية باستخدام العامل *. هذا يسمح بتكرار السلسلة النصية عدد معين من المرات.

ruby
word = "روبي" repeated_word = word * 3 puts repeated_word # => روبيروبيروبي

3. الاستبدال (Substitution):

يمكن استخدام الطريقة sub أو gsub لاستبدال جزء من السلسلة النصية بقيمة أخرى. sub تستبدل أول تطابق فقط، بينما gsub تستبدل جميع التطابقات.

ruby
text = "مرحبا، اسمي عادل" updated_text = text.sub("عادل", "علي") puts updated_text # => مرحبا، اسمي علي

4. التقطيع (Slicing):

يمكن استخراج جزء من السلسلة النصية باستخدام الفهرسة أو الطريقة slice. يتم تحديد الجزء باستخدام الرقم الذي يمثل الموقع.

ruby
text = "مرحبًا بالعالم" substring = text[0, 5] # استخراج أول 5 أحرف puts substring # => مرحب

5. التقليب (Reversal):

يمكن عكس السلسلة النصية باستخدام الطريقة reverse.

ruby
text = "مرحبًا" reversed_text = text.reverse puts reversed_text # => ًابحرم

التعامل مع الرموز الخاصة في السلاسل النصية

تدعم لغة روبي عدة رموز خاصة يمكن استخدامها داخل السلاسل النصية، مثل:

  1. العلامة \n: تستخدم للإشارة إلى السطر الجديد.

  2. العلامة \t: تستخدم للإشارة إلى التبويب (Tab).

  3. العلامة \\: تستخدم لإدراج حرف الفاصل العكسي \ في السلسلة النصية.

ruby
text = "سطر أول\nسطر ثاني" puts text # => سطر أول # => سطر ثاني

تحويل السلاسل النصية

توفر روبي العديد من الطرق لتحويل السلاسل النصية إلى أنواع أخرى من البيانات:

  1. التحويل إلى أحرف كبيرة:

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

    ruby
    text = "hello" upper_text = text.upcase puts upper_text # => HELLO
  2. التحويل إلى أحرف صغيرة:

    يمكن استخدام الطريقة downcase لتحويل جميع الأحرف في السلسلة النصية إلى أحرف صغيرة.

    ruby
    text = "HELLO" lower_text = text.downcase puts lower_text # => hello
  3. التحويل إلى قائمة من الأحرف:

    يمكن تحويل السلسلة النصية إلى قائمة من الأحرف باستخدام الطريقة chars.

    ruby
    text = "مرحبًا" char_array = text.chars puts char_array.inspect # => ["م", "ر", "ح", "ب", "ً", "ا"]

السلاسل النصية والمقارنة

يمكن مقارنة السلاسل النصية في روبي باستخدام العمليات المقارنة مثل == و !=. عندما تتم مقارنة سلسلتين، تقوم روبي بمقارنة كل حرف على حدة.

ruby
str1 = "مرحبا" str2 = "مرحبا" str3 = "عالم" puts str1 == str2 # => true puts str1 != str3 # => true

السلاسل النصية المتعددة الأسطر

في روبي، يمكن استخدام الاقتباسات الثلاثية المزدوجة أو المفردة لتمثيل السلاسل النصية التي تحتوي على عدة أسطر. يمكن لهذه السلاسل النصية أن تحتوي على أسطر متعددة دون الحاجة لاستخدام \n.

ruby
multi_line_string = """هذه سلسلة نصية تحتوي على عدة أسطر.""" puts multi_line_string # => هذه سلسلة # => نصية تحتوي # => على عدة أسطر.

استنتاج

تُعتبر السلاسل النصية من المكونات الأساسية في البرمجة بلغة روبي، وتوفر اللغة مجموعة واسعة من الأدوات والوظائف للعمل معها بكفاءة. سواء كان الهدف هو إجراء عمليات دمج، تكرار، تقطيع أو حتى استبدال أجزاء من السلسلة، توفر روبي كل ما يلزم للتعامل مع النصوص بطريقة مرنة وفعالة.