قصة "عمرو وياسر والكنز البرمجي"
في إحدى الليالي الهادئة، قرر عمرو وياسر، وهما صديقان مبرمجان، استكشاف لعبة جديدة مليئة بالتحديات البرمجية. اللعبة كانت تحوي سلسلة من الألغاز النصية (Strings) التي تحتاج لحلول باستخدام طرق C# المختلفة للتعامل مع النصوص. كان هدفهما العثور على الكنز البرمجي المخبأ في نهاية اللعبة.
المستوى الأول: اكتشاف طول النص
💡 الطريقة: Length
أول تحدٍ واجههما كان معرفة طول النص التالي:
"Welcome to the programming adventure!"
📜 الحل:
قال عمرو: "لنحسب طول النص باستخدام Length."
string text = "Welcome to the programming adventure!";
Console.WriteLine($"Text length: {text.Length}"); //output: 37
المستوى الثاني: البحث عن كلمة
💡 الطريقة: Contains
طلب منهما اللغز التالي: "ابحث عن الكلمة 'programming' في النص."
📜 الحل:
قال ياسر: "سأبحث عن الكلمة باستخدام Contains."
if (text.Contains("programming"))
{
Console.WriteLine("'programming' is found!"); //output: 'programming' is found!
}
else
{
Console.WriteLine("'programming' is not found.");
}
المستوى الثالث: استبدال الكلمات
💡 الطريقة: Replace
طلب اللغز استبدال كلمة "programming" بـ "coding".
📜 الحل:
قال عمرو: "لنستخدم Replace!"
string updatedText = text.Replace("programming", "coding");
Console.WriteLine(updatedText); // output: Welcome to the coding adventure!
المستوى الرابع: تقسيم النص
💡 الطريقة: Split
في المستوى الرابع، طلب تقسيم الجملة إلى كلمات منفصلة.
📜 الحل:
قال ياسر: "يمكننا فصل الكلمات باستخدام Split."
string[] words = text.Split(' ');
foreach (string word in words)
{
Console.WriteLine(word);
}
/*
output:
Welcome
to
the
programming
adventure!
*/
المستوى الخامس: عكس النص
💡 الطريقة: Reverse
التحدي كان إعادة النص إلى الوراء.
📜 الحل:
قال عمرو: "لنستخدم Reverse لعكس الأحرف."
string reversedText = new string(text.Reverse().ToArray());
Console.WriteLine(reversedText); //output: !erutnevda gnimmargorp eht ot emocleW
المستوى السادس: إزالة الأحرف الزائدة
💡 الطريقة: Trim
واجهوا نصًا يحتوي على مسافات زائدة:
" Hidden treasure here! "
📜 الحل:
قال ياسر: "لنستخدم Trim لإزالة المسافات الزائدة."
string hint = " Hidden treasure here! ";
string trimmedHint = hint.Trim();
Console.WriteLine(trimmedHint); //output: Hidden treasure here!
المستوى السابع: تحويل النصوص
💡 الطريقة: ToUpper و ToLower
طلب منهم تحويل النص إلى الأحرف الكبيرة.
📜 الحل:
قال عمرو: "سأجرب ToUpper و ToLower."
Console.WriteLine(text.ToUpper()); //output: WELCOME TO THE PROGRAMMING ADVENTURE!
Console.WriteLine(text.ToLower()); //output: welcome to the programming adventure!
المستوى الثامن: التحقق من البداية والنهاية
💡 الطريقة: StartsWith و EndsWith
كان عليهم التأكد من أن النص يبدأ بـ "Welcome" وينتهي بـ "adventure!".
📜 الحل:
قال ياسر: "سأستخدم StartsWith و EndsWith للتحقق."
if (text.StartsWith("Welcome"))
Console.WriteLine("Text starts with 'Welcome'!"); // output: Text starts with 'Welcome'!
if (text.EndsWith("adventure!"))
Console.WriteLine("Text ends with 'adventure!'"); // output: Text ends with 'adventure!'
المستوى التاسع: استخراج النصوص
💡 الطريقة: Substring
طلب منهم استخراج كلمة "coding" من النص المعدل.
📜 الحل:
قال عمرو: "لنستخدم Substring لاستخراج النص."
string part = updatedText.Substring(15, 6);
Console.WriteLine(part); // output: coding
المستوى العاشر: تحديد الموقع
💡 الطريقة: IndexOf
طلب منهم تحديد موقع كلمة "adventure".
📜 الحل:
قال ياسر: "سأستخدم IndexOf."
int index = updatedText.IndexOf("adventure");
Console.WriteLine($"'adventure' starts at index: {index}"); // output :'adventure' starts at index: 22
النهاية:
بعد تجاوز جميع المستويات، اكتشف عمرو وياسر الكنز البرمجي، ووجدوا رسالة تقول:
"Congratulations! You have mastered string methods in C#. Keep coding and exploring!"
🚀 هل استمتعتم بالمغامرة البرمجية؟
يا أبطال الكود!
👨💻👩💻 بعد رحلتنا المشوقة مع عمرو وياسر لاستكشاف أسرار النصوص في C#، نريد أن نسمع رأيكم!
😍هل أعجبتكم القصة والأسلوب؟
بتحبوا النوع ده من المنشورات اللي بيجمع بين التسلية والتعلم؟
✨ شاركوا أفكاركم واقتراحاتكم في التعليقات، ومين عارف؟ يمكن تكونوا أبطال المغامرة البرمجية القادمة!
😎🎯