نوع char در C# یک کمیت ۱۶بیتی است که کوچکترین اجزای آدرسپذیر متن را نمایش میدهد. چندین char میتوانند یک رشته مانند "word" را تشکیل دهند یا charها میتوانند بهصورت مستقل پردازش شوند. لیترالهای آنها با علامت نقلقول تک نوشته میشوند؛ برای نمونه 'A'.
charهای C# از کدگذاری یونیکد UTF-16 پشتیبانی میکنند، بنابراین علاوه بر مجموعهی کاراکترهای لاتین، تقریباً همهی نظامهای نوشتاری رایج در جهان را میتوان نمایش داد؛ برای نمونه حرف یونانی 'β'.
متدهای کتابخانهای توکار زیادی برای بررسی و دستکاری charها وجود دارد. این متدها را میتوان بهصورت متدهای ایستای کلاس System.Char پیدا کرد.
گاهی از charها در کنار یک شیء StringBuilder استفاده میشود. این شیء متدهایی دارد که با آنها میتوان یک رشته را کاراکتر به کاراکتر ساخت و دستکاری کرد. در پایان کار میتوان ToString را روی آن فراخوانی کرد تا یک رشتهی کامل را خروجی دهد.
در این تمرین، مجموعهای ناقص از روالهای کمکی را پیادهسازی میکنید تا به یک برنامهنویس در تمیز کردن اسمهای شناسه کمک کنید.
در این ۵ تمرین، روال Clean را بهتدریج کامل میکنید.
یک شناسهی معتبر از صفر یا چند حرف و زیرخط تشکیل شده است.
در همهی حالتها، تضمین شده است که رشتهی ورودی هرگز null نیست.
اگر رشتهی خالی به تابع Clean داده شود، باید رشتهی خالی برگردانده شود.
توجه کنید که فراخوانکننده باید از فراخوانی روال Clean با یک شناسهی خالی پرهیز کند، چون چنین شناسههایی بیاثرند.
متد (static) Identifier.Clean() را طوری پیادهسازی کنید که هر فاصله را با زیرخط جایگزین کند.
این موضوع برای فاصلههای ابتدا و انتهای رشته هم صدق میکند.
Identifier.Clean("my Id");
// => "my___Id"
متد (static) Identifier.Clean() را طوری تغییر دهید که نویسههای کنترلی را با رشتهی "CTRL" با حروف بزرگ جایگزین کند.
Identifier.Clean("my\0Id");
// => "myCTRLId",
متد (static) Identifier.Clean() را طوری تغییر دهید که kebab-case را به camelCase تبدیل کند.
Identifier.Clean("à-ḃç");
// => "àḂç"
متد (static) Identifier.Clean() را طوری تغییر دهید که هر نویسهای را که حرف نیست حذف کند.
Identifier.Clean("1😀2😀3😀");
// => ""
متد (static) Identifier.Clean() را طوری تغییر دهید که هر حرف یونانی در بازهی 'α' تا 'ω' را حذف کند.
Identifier.Clean("MyΟβιεγτFinder");
// => "MyΟFinder"