কম্পিউটার টিউটোরিয়াল

C#-এ String.IsNormalized মেথড


C#-এ String.IsNormalized() মেথডটি একটি স্ট্রিং নির্দিষ্ট Unicode নর্মালাইজেশন ফর্মে (normalization form) আছে কিনা তা যাচাই করতে ব্যবহৃত হয়। Unicode নর্মালাইজেশন নিশ্চিত করে যে সমান লজিক্যাল ক্যারেক্টার সিকোয়েন্সগুলো একই বাইট সিকোয়েন্সে রিপ্রেজেন্ট করা হয়েছে।

সিনট্যাক্স (Syntax)

public bool IsNormalized ();
public bool IsNormalized (System.Text.NormalizationForm normalizationForm);

প্যারামিটার normalizationForm হল একটি Unicode নর্মালাইজেশন ফর্ম (FormC, FormD, FormKC, FormKD)।

Unicode নর্মালাইজেশন ফর্মস

ফর্মপুরো নামবিবরণ
FormCNormalization Form C (NFC)Canonical Composition - ক্যারেক্টারগুলো কমপোজড ফর্মে থাকে
FormDNormalization Form D (NFD)Canonical Decomposition - ক্যারেক্টারগুলো ডিকমপোজড ফর্মে থাকে
FormKCNormalization Form KC (NFKC)Compatibility Composition - কমপ্যাটিবিলিটি কমপোজিশন
FormKDNormalization Form KD (NFKD)Compatibility Decomposition - কমপ্যাটিবিলিটি ডিকমপোজিশন

উদাহরণ ১: ডিফল্ট নর্মালাইজেশন চেক (FormC)

using System; 
public class Demo { 
    public static void Main(String[] args) { 
        string str1 = "Ryan"; 
        string str2 = "Matt"; 
        Console.WriteLine("String 1 = " + str1); 
        Console.WriteLine("HashCode of String 1 = " + str1.GetHashCode()); 
        Console.WriteLine("Index of character 'k' in str1 = " + str1.IndexOf("k")); 
        Console.WriteLine("\nString 2 = " + str2); 
        Console.WriteLine("HashCode of String 2 = " + str2.GetHashCode()); 
        Console.WriteLine("Index of character 'k' in str2 =" + str2.IndexOf("k")); 
        bool res1 = str1.Contains(str2); 
        res1 = str1.IsNormalized(); 
        Console.WriteLine("\nThe str1 is in normalized form = " + res1); 
        bool res2 = str1.Contains(str2); 
        res2 = str2.IsNormalized(); 
        Console.WriteLine("The str2 is in normalized form = " + res2); 
    } 
}

আউটপুট

String 1 = Ryan 
HashCode of String 1 = 1580592915 
Index of character 'k' in str1 = -1 
String 2 = Matt 
HashCode of String 2 = -1920007383 
Index of character 'k' in str2 = -1 
The str1 is in normalized form = True 
The str2 is in normalized form = True

উদাহরণ ২: বিভিন্ন নর্মালাইজেশন ফর্ম চেক

using System; 
using System.Text; 
public class Demo { 
    public static void Main(String[] args) { 
        string str1 = "Imagine Dragons"; 
        string str2 = "Imagine"; 
        Console.WriteLine("String 1 = " + str1); 
        Console.WriteLine("HashCode of String 1 = " + str1.GetHashCode()); 
        Console.WriteLine("String 2 = " + str2); 
        Console.WriteLine("HashCode of String 2 = " + str2.GetHashCode()); 
        Console.WriteLine("String 1 is equal to String 2: {0}", str1.Equals(str2)); 
        Console.WriteLine("str1 is normalized to form C? = {0}", str1.IsNormalized(NormalizationForm.FormC)); 
        Console.WriteLine("str2 is normalized to form C? = {0}", (str2.IsNormalized(NormalizationForm.FormC))); 
        Console.WriteLine("str1 is normalized to form D? = {0}", str1.IsNormalized(NormalizationForm.FormD)); 
        Console.WriteLine("str2 is normalized to form D? = {0}", str2.IsNormalized(NormalizationForm.FormD)); 
        Console.WriteLine("str1 is normalized to form KC? = {0}", str1.IsNormalized(NormalizationForm.FormKC)); 
        Console.WriteLine("str2 is normalized to form KC? = {0}", str2.IsNormalized(NormalizationForm.FormKC)); 
        Console.WriteLine("str1 is normalized to form KD? = {0}", str1.IsNormalized(NormalizationForm.FormKD)); 
        Console.WriteLine("str2 is normalized to form KD? = {0}", str2.IsNormalized(NormalizationForm.FormKD)); 
    } 
}

আউটপুট

String 1 = Imagine Dragons 
HashCode of String 1 = -1546868095 
String 2 = Imagine 
HashCode of String 2 = -1414695254 
String 1 is equal to String 2: False 
str1 is normalized to form C? = True 
str2 is normalized to form C? = True 
str1 is normalized to form D? = True 
str2 is normalized to form D? = True 
str1 is normalized to form KC? = True 
str2 is normalized to form KC? = True 
str1 is normalized to form KD? = True 
str2 is normalized to form KD? = True

মূল পয়েন্টস

  • আসcii ক্যারেক্টার বা সাধারণ ইংরেজি টেক্সট সাধারণত সব নর্মালাইজেশন ফর্মে নর্মালাইজড থাকে।
  • ডায়াক্রিটিক্যাল চিহ্ন (accent marks), লিগaturen (ligatures), বা কমপোজড ক্যারেক্টারवाले ভাষা (যেমন: জাপানি, কোরিয়ান, ভিয়েতনামি) নর্মালাইজেশন অনুযায়ী ভিন্ন বাইট সিকোয়েন্স থাকতে পারে।
  • String.Normalize() মেথড ব্যবহার করে স্ট্রিংকে নির্দিষ্ট ফর্মে নর্মালাইজ করা যায়।
  • ডাটাবেস কুয়েরি, ফাইল সিস্টেম অপারেশন, নেটওয়ার্ক প্রোটোকলে নর্মালাইজেশন অত্যন্ত গুরুত্বপূর্ণ।
  1. C#-এ DateTime.ToLongTimeString() মেথড

  2. C#-এ String.PadRight() মেথড: স্ট্রিংয়ের ডানে প্যাডিং যোগ করা

  3. C# SingleOrDefault() পদ্ধতি

  4. C#-এ String.Join() মেথড ব্যবহার করে স্ট্রিং অ্যারের উপাদানগুলো একত্রিত করা