C#-এর char টাইপ হলো ১৬ বিটের একটি মান, যা টেক্সটের ক্ষুদ্রতম অ্যাড্রেসযোগ্য উপাদান প্রকাশ করে। একাধিক char মিলে "word"-এর মতো একটি স্ট্রিং গঠন করতে পারে, আবার charগুলোকে আলাদাভাবে প্রসেস করা যায়। এদের লিটারালে একক উদ্ধৃতি চিহ্ন থাকে, যেমন 'A'।
C#-এর charগুলো UTF-16 ইউনিকোড এনকোডিং সাপোর্ট করে, তাই লাতিন ক্যারেক্টার সেটের পাশাপাশি বিশ্বে ব্যবহৃত প্রায় সব লেখার পদ্ধতিই প্রকাশ করা যায়, যেমন গ্রিক অক্ষর 'β'।
char পরীক্ষা করা ও সেগুলো নিয়ে কাজ করার জন্য লাইব্রেরিতে অনেক বিল্ট-ইন মেথড আছে। এগুলো System.Char ক্লাসের স্ট্যাটিক মেথড হিসেবে পাওয়া যায়।
char কখনো কখনো একটি StringBuilder অবজেক্টের সাথে একসাথে ব্যবহার করা হয়। এই অবজেক্টে এমন মেথড থাকে, যা দিয়ে ক্যারেক্টার ধরে ধরে একটি স্ট্রিং তৈরি করা ও তা পরিবর্তন করা যায়। কাজ শেষে এটির উপর ToString কল করা যায়, যাতে সম্পূর্ণ একটি স্ট্রিং আউটপুট হিসেবে পাওয়া যায়।
এই অনুশীলনীতে, আপনি একজন ডেভেলপারকে আইডেন্টিফায়ার নাম পরিষ্কার করতে সাহায্য করার জন্য কিছু ইউটিলিটি রুটিনের একটি আংশিক সেট তৈরি করবেন।
৫টি কাজে আপনি ধীরে ধীরে Clean রুটিনটি গড়ে তুলবেন।
একটি বৈধ আইডেন্টিফায়ারে শূন্য বা তার বেশি অক্ষর ও আন্ডারস্কোর থাকে।
সব ক্ষেত্রেই ইনপুট স্ট্রিংটি নন-নাল হওয়া নিশ্চিত।
Clean ফাংশনে যদি একটি খালি স্ট্রিং পাস করা হয়, তাহলে একটি খালি স্ট্রিং রিটার্ন করা উচিত।
মনে রাখবেন, খালি আইডেন্টিফায়ার দিয়ে Clean রুটিনটি কল করা কলকারীর এড়িয়ে চলা উচিত, কারণ এমন আইডেন্টিফায়ার অকার্যকর।
যেকোনো স্পেসকে আন্ডারস্কোর দিয়ে প্রতিস্থাপন করতে (static) Identifier.Clean() মেথডটি ইমপ্লিমেন্ট করুন।
এটি শুরুতে ও শেষে থাকা স্পেসের ক্ষেত্রেও প্রযোজ্য।
Identifier.Clean("my Id");
// => "my___Id"
কন্ট্রোল ক্যারেক্টারকে বড় হাতের "CTRL" স্ট্রিং দিয়ে প্রতিস্থাপন করতে (static) Identifier.Clean() মেথডটি পরিবর্তন করুন।
Identifier.Clean("my\0Id");
// => "myCTRLId",
kebab-case-কে camelCase-এ রূপান্তর করতে (static) Identifier.Clean() মেথডটি পরিবর্তন করুন।
Identifier.Clean("à-ḃç");
// => "àḂç"
অক্ষর নয় এমন যেকোনো ক্যারেক্টার বাদ দিতে (static) Identifier.Clean() মেথডটি পরিবর্তন করুন।
Identifier.Clean("1😀2😀3😀");
// => ""
'α' থেকে 'ω' রেঞ্জের যেকোনো গ্রিক অক্ষর বাদ দিতে (static) Identifier.Clean() মেথডটি পরিবর্তন করুন।
Identifier.Clean("MyΟβιεγτFinder");
// => "MyΟFinder"
Exercism-এ সাইন আপ করুন, C# ট্র্যাকের 62টি কনসেপ্ট178টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।