التعامل مع النصوص: الدوال الشائعة
في هذا الدرس، سنتعلم كيفية التعامل مع النصوص (Strings) باستخدام الدوال المدمجة في روبي. هذه الدوال تسهل عليك تحويل النصوص، البحث فيها، وتقسيمها.
تحويل حالة الأحرف
upcase - تحويل إلى أحرف كبيرة
downcase - تحويل إلى أحرف صغيرة
capitalize - تكبير الحرف الأول فقط
لاحظ أن capitalize تحول الحرف الأول إلى كبير وباقي الأحرف إلى صغيرة.
swapcase - عكس حالة الأحرف
معلومات عن النص
length و size - طول النص
empty? - هل النص فارغ؟
include? - هل يحتوي على نص معين؟
تنظيف النصوص
strip - إزالة المسافات من الطرفين
lstrip و rstrip - إزالة المسافات من جانب واحد
chomp - إزالة سطر جديد من النهاية
هذه الدالة مفيدة جداً عند قراءة إدخال المستخدم بـ gets.
عكس وتكرار النصوص
reverse - عكس النص
* - تكرار النص
تقسيم ودمج النصوص
split - تقسيم النص إلى مصفوفة
join - دمج مصفوفة إلى نص
البحث والاستبدال
gsub - استبدال كل التطابقات
sub - استبدال أول تطابق فقط
delete - حذف أحرف معينة
الوصول لأجزاء من النص
باستخدام الفهرس (index)
باستخدام النطاق (range)
جدول ملخص الدوال
| الدالة | الوصف | مثال |
|---|---|---|
upcase | تحويل لأحرف كبيرة | "hi".upcase → "HI" |
downcase | تحويل لأحرف صغيرة | "HI".downcase → "hi" |
capitalize | تكبير الحرف الأول | "hi".capitalize → "Hi" |
reverse | عكس النص | "hi".reverse → "ih" |
length | طول النص | "hi".length → 2 |
strip | إزالة المسافات | " hi ".strip → "hi" |
split | تقسيم لمصفوفة | "a,b".split(",") → ["a","b"] |
join | دمج مصفوفة | ["a","b"].join("-") → "a-b" |
include? | البحث عن نص | "hi".include?("h") → true |
gsub | استبدال الكل | "aa".gsub("a","b") → "bb" |
سلسلة الدوال (Method Chaining)
يمكنك استدعاء عدة دوال متتالية على نفس النص:
هذا يسمى "سلسلة الدوال" ويجعل الشيفرة أكثر قابلية للقراءة.
أمثلة عملية
تنظيف إدخال المستخدم
تحويل اسم ملف
استخراج الكلمات الفريدة
ملاحظة مهمة
الدوال التي تعلمناها لا تغير النص الأصلي، بل تُرجع نصاً جديداً:
في الدرس القادم، سنتعلم عن الدوال التي تنتهي بـ ! والتي تغير النص الأصلي مباشرة.
التمرين
الآن حان دورك! استخدم دوال النصوص لتحويل البيانات التالية:
- حوّل الاسم إلى أحرف كبيرة
- أزل المسافات الزائدة من البريد الإلكتروني وحوّله لأحرف صغيرة
- استبدل الشرطات بمسافات في العنوان
- اعرض طول الاسم
الناتج المتوقع: