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

دوال الـ String

جزء من قسم Fundamentals في رحلة Rust على Coddy — الدرس 69 من 75.

تمتلك لغة Rust مجموعة غنية من دوال السلاسل النصية (string methods) المدمجة التي تتيح لك إجراء عمليات متنوعة على السلاسل النصية. توفر هذه الدوال وظائف لمعالجة السلاسل النصية والبحث فيها وتحويلها. إليك بعض دوال السلاسل النصية الشائعة الاستخدام:

  • len(): يعيد عدد الأحرف في السلسلة النصية.
  • chars().nth(index): يعيد الحرف الموجود في الفهرس المحدد (يبدأ من 0). تعيد هذه الطريقة Option<char> — وهو نوع خاص في Rust يمثل إما قيمة Some (إذا كان الفهرس موجوداً) أو None (إذا لم يكن موجوداً). استدعاء .unwrap() عليه يستخرج قيمة الحرف مباشرة.
  • contains(substring): يتحقق مما إذا كانت السلسلة النصية تحتوي على السلسلة الفرعية المحددة.
  • starts_with(prefix): يتحقق مما إذا كانت السلسلة النصية تبدأ بالبادئة المحددة.
  • ends_with(suffix): يتحقق مما إذا كانت السلسلة النصية تنتهي باللاحقة المحددة.
  • to_uppercase(): يحول السلسلة النصية إلى أحرف كبيرة.
  • to_lowercase(): يحول السلسلة النصية إلى أحرف صغيرة.
  • trim(): يزيل المسافات البيضاء من بداية ونهاية السلسلة النصية.

على سبيل المثال:

let message = "Hello, World!";
let length = message.len();
let firstChar = message.chars().nth(0).unwrap();
let contains_world = message.contains("World");
let starts_with_hello = message.starts_with("Hello");
let lower = message.to_lowercase();
challenge icon

التحدي

سهل

قم بإنشاء دالة باسم analyzeString تأخذ سلسلة نصية كمدخل وتطبع التحليل التالي باستخدام دوال السلسلة النصية:

  1. طول السلسلة النصية
  2. الحرف الموجود في الفهرس 4
  3. ما إذا كانت السلسلة تحتوي على السلسلة الفرعية "Rust"
  4. ما إذا كانت السلسلة تنتهي بنقطة .
  5. السلسلة النصية محولة إلى أحرف كبيرة (uppercase)

يجب أن يتبع المخرج هذا التنسيق بالضبط:

Length: [The length]
Char at 4: [The Char at index 4]
Contains Rust: [true or false]
Ends with dot: [true or false]
Uppercase: [The string in uppercase]

ملاحظة: افترض أن سلسلة الإدخال ستكون طويلة بما يكفي لجميع العمليات.

ورقة مرجعية

طرق السلاسل النصية المضمنة في Rust:

  • len(): تعيد عدد الأحرف
  • chars().nth(index).unwrap(): تعيد الحرف الموجود في الفهرس المحدد (يبدأ من 0)
  • contains(substring): تتحقق مما إذا كانت السلسلة النصية تحتوي على السلسلة الفرعية المحددة
  • starts_with(prefix): تتحقق مما إذا كانت السلسلة النصية تبدأ بالبادئة المحددة
  • ends_with(suffix): تتحقق مما إذا كانت السلسلة النصية تنتهي باللاحقة المحددة
  • to_uppercase(): تحول السلسلة النصية إلى أحرف كبيرة
  • to_lowercase(): تحول السلسلة النصية إلى أحرف صغيرة
  • trim(): تزيل المسافات البيضاء في البداية والنهاية
let message = "Hello, World!";
let length = message.len();
let firstChar = message.chars().nth(0).unwrap();
let contains_world = message.contains("World");
let starts_with_hello = message.starts_with("Hello");
let lower = message.to_lowercase();

جرّب بنفسك

use std::io;

fn analyze_string(s: &str) {
    // اكتب كودك هنا
}

fn main() {
    let mut message = String::new();
    io::stdin().read_line(&mut message).unwrap();
    let message = message.trim();
    analyze_string(message);
}
quiz iconاختبر نفسك

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

جميع دروس Fundamentals