المسارات
/
C#
C#
/
التمارين
/
نظيف تمامًا
نظيف تمامًا

نظيف تمامًا

تمرين تعلّمي

مقدمة

المحارف

النوع char في C# هو كمية بطول 16 بت تمثّل أصغر مكوّنات النص القابلة للعنونة. يمكن لعدة محارف char أن تشكّل سلسلة نصية مثل "word"، كما يمكن معالجة كل محرف char على حدة. تُكتب القيم الحرفية لهذه المحارف بين علامتي تنصيص مفردتين، مثل 'A'.

تدعم محارف char في C# ترميز UTF-16 من يونيكود، لذا فبالإضافة إلى مجموعة المحارف اللاتينية، يمكن تمثيل كل أنظمة الكتابة المستخدمة في العالم تقريبًا، مثل الحرف اليوناني 'β'.

هناك العديد من الطرق المكتبية المدمجة لفحص محارف char والتعامل معها. يمكن إيجادها كطرق ثابتة في الصنف System.Char.

بناء السلاسل النصية

تُستخدم محارف char أحيانًا مع كائن StringBuilder. يمتلك هذا الكائن طرقًا تسمح ببناء سلسلة نصية محرفًا محرفًا والتعامل معها. وفي نهاية العملية يمكن استدعاء ToString عليه لإخراج سلسلة نصية كاملة.

التعليمات

في هذا التمرين، ستُنفّذ مجموعة جزئية من الإجراءات المساعدة لمساعدة مطوّر على تنظيف أسماء المعرّفات. في المهام الخمس ستبني تدريجيًا الإجراء Clean. يتكوّن المعرّف الصالح من صفر أو أكثر من الحروف والشرطات السفلية. في جميع الحالات، من المضمون أن سلسلة الإدخال ليست null. وإذا مُرّرت سلسلة نصية فارغة إلى دالة Clean، فيجب إرجاع سلسلة نصية فارغة. لاحظ أن على المستدعي أن يتجنّب استدعاء الإجراء Clean بمعرّف فارغ، لأن مثل هذه المعرّفات لا تأثير لها.

1. استبدل أي مسافات تصادفها بالشرطات السفلية

نفّذ الطريقة (static) Identifier.Clean() لاستبدال أي مسافات بالشرطات السفلية. وينطبق هذا أيضًا على المسافات البادئة واللاحقة.

Identifier.Clean("my   Id");
// => "my___Id"

2. استبدل أحرف التحكم بالسلسلة النصية "CTRL" المكتوبة بحروف كبيرة

عدّل الطريقة (static) Identifier.Clean() لاستبدال أحرف التحكم بالسلسلة النصية "CTRL" المكتوبة بحروف كبيرة.

Identifier.Clean("my\0Id");
// => "myCTRLId",

3. حوّل kebab-case إلى camelCase

عدّل الطريقة (static) Identifier.Clean() لتحويل kebab-case إلى camelCase.

Identifier.Clean("à-ḃç");
// => "àḂç"

4. تجاهل الأحرف التي ليست حروفًا

عدّل الطريقة (static) Identifier.Clean() لتجاهل أي أحرف ليست حروفًا.

Identifier.Clean("1😀2😀3😀");
// => ""

5. تجاهل الحروف اليونانية الصغيرة

عدّل الطريقة (static) Identifier.Clean() لتجاهل أي حروف يونانية في النطاق من 'α' إلى 'ω'.

Identifier.Clean("MyΟβιεγτFinder");
// => "MyΟFinder"
تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة
C# Exercism

مستعد لبدء نظيف تمامًا؟

سجّل في Exercism لتتعلّم وتتقن C# عبر 62 مفهومًا178 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.