স্ট্রিং এর দৈর্ঘ্য চিহ্নিত করা

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
    }
}

পার্থক্যটা বুঝতে পারছেন? এটা শুধু বিদ্যামূলক নয়; এটি পাঠ্য প্রক্রিয়ায় গুরুত্বপূর্ণ প্রভাব ফেলতে পারে।

আরও দেখুন

এই সংস্থানগুলির সাথে আরও জানুন:

আপনার স্ট্রিংগুলিকে জানুন, বিজ্ঞানসম্মতভাবে তাদের ব্যবহার করুন, এবং প্রতিটি অর্থে গণনাকারী কোড লিখুন।