C#:
স্ট্রিং এর দৈর্ঘ্য চিহ্নিত করা
কি ভাবে:
C#-এ, string.Length
প্রোপার্টিটি আপনাকে একটি স্ট্রিংয়ে অক্ষরের সংখ্যা বলে দেয়। এটি কিভাবে ব্যবহার করতে হয় দেখুন:
using System;
class Program
{
static void Main()
{
string example = "Hello, World!";
Console.WriteLine(example.Length); // আউটপুট: 13
}
}
সহজ, তাই না? কিন্তু মনে রাখবেন, এটা অক্ষরগুলি গণনা করে, বাইট নয়। ইমোজি অথবা বিশেষ অক্ষরের সাথে, জিনিসটা জটিল হতে পারে। পরে আরো জানুন।
গভীর ডুব
ঐতিহাসিকভাবে, একটি স্ট্রিংয়ের দৈর্ঘ্য খোঁজার বিষয়টি প্রোগ্রামিংয়ে মেমরি ব্যবস্থাপনা ও ম্যানিপুলেশনের সাথে জড়িত ছিল। যেহেতু C# একটি উচ্চ-স্তরের ভাষা, এটি ওই নিম্ন-স্তরের কাজটি লুকিয়ে রাখে। তবুও, কি আছে তলদেশে তা জানা ভালো।
বিকল্প? অবশ্যই! আপনি example.ToCharArray().Length
দেখতে পারেন বাইরে, কিন্তু এটি একই ফলাফলের জন্য অতিরিক্ত কাজ করছে।
এখন, সেই জটিল অক্ষরগুলোর কথায় আসি। C#-এর Length
প্রোপার্টিটি একটি স্ট্রিংয়ের char
অবজেক্টগুলি গণনা করে, প্রতিটি একটি UTF-16 কোড ইউনিটকে প্রতিনিধিত্ব করে। এটা ঠিক আছে, যতক্ষণ আপনি সারোগেট জোড়া – ইমোজির মত অক্ষরের সাথে দেখা না করেন যা দুটি char
অবজেক্ট প্রয়োজন। এখানে বিষয়: Length
এগুলি দুটি হিসেবে গণনা করে। হ্যাঁ।
দৃশ্যমান অক্ষর অথবা গ্রাফিম ক্লাস্টার এর সঠিক গণনা করতে, আপনার System.Globalization-এর StringInfo
ক্লাসের প্রয়োজন হবে:
using System;
using System.Globalization;
class Program
{
static void Main()
{
string example = "👍"; // থাম্স আপ ইমোজি
Console.WriteLine(example.Length); // আউটপুট: 2 <- কারণ সারোগেট জোড়া!
Console.WriteLine(new StringInfo(example).LengthInTextElements); // আউটপুট: 1
}
}
পার্থক্যটা বুঝতে পারছেন? এটা শুধু বিদ্যামূলক নয়; এটি পাঠ্য প্রক্রিয়ায় গুরুত্বপূর্ণ প্রভাব ফেলতে পারে।
আরও দেখুন
এই সংস্থানগুলির সাথে আরও জানুন:
- স্ট্রিং সম্পর্কিত মাইক্রোসফটের অফিসিয়াল ডকুমেন্টেশন
- Unicode এবং UTF-16 বুঝতে
- StringInfo ক্লাসের ডকুমেন্টেশন
আপনার স্ট্রিংগুলিকে জানুন, বিজ্ঞানসম্মতভাবে তাদের ব্যবহার করুন, এবং প্রতিটি অর্থে গণনাকারী কোড লিখুন।