السلاسل النصية في لغة روبي: مفهومها وخصائصها
تُعتبر السلاسل النصية من أهم أنواع البيانات التي يتم التعامل معها في البرمجة، وذلك لأنها تستخدم بشكل مستمر لتمثيل النصوص والمعلومات التي يتم التعامل معها في التطبيقات المختلفة. ولغة البرمجة روبي (Ruby) ليست استثناء من هذا المبدأ، حيث توفر العديد من الأدوات والوظائف التي تسهل التعامل مع السلاسل النصية بشكل فعال. في هذا المقال، سنتناول جميع جوانب السلاسل النصية في لغة روبي، بدءاً من تعريفها وخصائصها، وصولاً إلى طرق التعامل معها واستخداماتها المختلفة.
تعريف السلسلة النصية في لغة روبي
السلسلة النصية في روبي هي عبارة عن مجموعة من الأحرف (Characters) المتتالية التي يتم تمثيلها داخل اقتباسات مفردة (‘) أو مزدوجة (“). يمكن للسلسلة النصية أن تحتوي على أي نوع من البيانات النصية، سواء كانت حروفاً، أرقاماً، أو حتى رموزاً خاصة. كما يمكن أن تكون السلسلة النصية فارغة أو تحتوي على نصوص معقدة وطويلة.
rubystr1 = "مرحبًا بالعالم"
str2 = 'أهلاً وسهلاً'
في الأمثلة السابقة، تم تعريف سلسلتين نصيتين باستخدام الاقتباسات المزدوجة والمفردة على التوالي.
أنواع السلاسل النصية في روبي
في لغة روبي، يمكننا التمييز بين نوعين من السلاسل النصية بناءً على نوع الاقتباسات المستخدمة:
-
السلاسل النصية باستخدام الاقتباسات المزدوجة:
هذه السلاسل تتيح تضمين متغيرات وتعابير داخل السلسلة باستخدام التفسير (interpolation). هذا يعني أنه يمكن إدراج قيم المتغيرات داخل السلسلة النصية مباشرة.rubyname = "عادل" greeting = "مرحبًا، اسمي #{name}" puts greeting # => مرحبًا، اسمي عادلفي المثال أعلاه، تم استخدام
#{}لإدراج قيمة المتغيرnameداخل السلسلة النصية. -
السلاسل النصية باستخدام الاقتباسات المفردة:
السلاسل النصية التي يتم تعريفها باستخدام الاقتباسات المفردة لا تدعم التفسير. إذا حاولنا تضمين متغير داخل السلسلة النصية باستخدام الاقتباسات المفردة، فلن يتم استبداله بقيمته.rubyname = "عادل" greeting = 'مرحبًا، اسمي #{name}' puts greeting # => مرحبًا، اسمي #{name}كما نلاحظ، في هذه الحالة لم يتم تفسير المتغير داخل السلسلة النصية.
العمليات الأساسية على السلاسل النصية
تتيح لغة روبي عددًا من العمليات الأساسية التي يمكن تطبيقها على السلاسل النصية، والتي تشمل:
1. الدمج (Concatenation):
يمكن دمج السلاسل النصية باستخدام العامل +. هذه العملية تتيح دمج سلسلتين أو أكثر معاً لإنشاء سلسلة نصية جديدة.
rubygreeting = "مرحبًا"
name = "عادل"
message = greeting + " " + name
puts message # => مرحبًا عادل
2. التكرار (Repetition):
يمكن تكرار السلسلة النصية باستخدام العامل *. هذا يسمح بتكرار السلسلة النصية عدد معين من المرات.
rubyword = "روبي"
repeated_word = word * 3
puts repeated_word # => روبيروبيروبي
3. الاستبدال (Substitution):
يمكن استخدام الطريقة sub أو gsub لاستبدال جزء من السلسلة النصية بقيمة أخرى. sub تستبدل أول تطابق فقط، بينما gsub تستبدل جميع التطابقات.
rubytext = "مرحبا، اسمي عادل"
updated_text = text.sub("عادل", "علي")
puts updated_text # => مرحبا، اسمي علي
4. التقطيع (Slicing):
يمكن استخراج جزء من السلسلة النصية باستخدام الفهرسة أو الطريقة slice. يتم تحديد الجزء باستخدام الرقم الذي يمثل الموقع.
rubytext = "مرحبًا بالعالم"
substring = text[0, 5] # استخراج أول 5 أحرف
puts substring # => مرحب
5. التقليب (Reversal):
يمكن عكس السلسلة النصية باستخدام الطريقة reverse.
rubytext = "مرحبًا"
reversed_text = text.reverse
puts reversed_text # => ًابحرم
التعامل مع الرموز الخاصة في السلاسل النصية
تدعم لغة روبي عدة رموز خاصة يمكن استخدامها داخل السلاسل النصية، مثل:
-
العلامة
\n: تستخدم للإشارة إلى السطر الجديد. -
العلامة
\t: تستخدم للإشارة إلى التبويب (Tab). -
العلامة
\\: تستخدم لإدراج حرف الفاصل العكسي\في السلسلة النصية.
rubytext = "سطر أول\nسطر ثاني"
puts text
# => سطر أول
# => سطر ثاني
تحويل السلاسل النصية
توفر روبي العديد من الطرق لتحويل السلاسل النصية إلى أنواع أخرى من البيانات:
-
التحويل إلى أحرف كبيرة:
يمكن استخدام الطريقةupcaseلتحويل جميع الأحرف في السلسلة النصية إلى أحرف كبيرة.rubytext = "hello" upper_text = text.upcase puts upper_text # => HELLO -
التحويل إلى أحرف صغيرة:
يمكن استخدام الطريقةdowncaseلتحويل جميع الأحرف في السلسلة النصية إلى أحرف صغيرة.rubytext = "HELLO" lower_text = text.downcase puts lower_text # => hello -
التحويل إلى قائمة من الأحرف:
يمكن تحويل السلسلة النصية إلى قائمة من الأحرف باستخدام الطريقةchars.rubytext = "مرحبًا" char_array = text.chars puts char_array.inspect # => ["م", "ر", "ح", "ب", "ً", "ا"]
السلاسل النصية والمقارنة
يمكن مقارنة السلاسل النصية في روبي باستخدام العمليات المقارنة مثل == و !=. عندما تتم مقارنة سلسلتين، تقوم روبي بمقارنة كل حرف على حدة.
rubystr1 = "مرحبا"
str2 = "مرحبا"
str3 = "عالم"
puts str1 == str2 # => true
puts str1 != str3 # => true
السلاسل النصية المتعددة الأسطر
في روبي، يمكن استخدام الاقتباسات الثلاثية المزدوجة أو المفردة لتمثيل السلاسل النصية التي تحتوي على عدة أسطر. يمكن لهذه السلاسل النصية أن تحتوي على أسطر متعددة دون الحاجة لاستخدام \n.
rubymulti_line_string = """هذه سلسلة
نصية تحتوي
على عدة أسطر."""
puts multi_line_string
# => هذه سلسلة
# => نصية تحتوي
# => على عدة أسطر.
استنتاج
تُعتبر السلاسل النصية من المكونات الأساسية في البرمجة بلغة روبي، وتوفر اللغة مجموعة واسعة من الأدوات والوظائف للعمل معها بكفاءة. سواء كان الهدف هو إجراء عمليات دمج، تكرار، تقطيع أو حتى استبدال أجزاء من السلسلة، توفر روبي كل ما يلزم للتعامل مع النصوص بطريقة مرنة وفعالة.

