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 নর্মালাইজেশন ফর্মস
| ফর্ম | পুরো নাম | বিবরণ |
|---|---|---|
| FormC | Normalization Form C (NFC) | Canonical Composition - ক্যারেক্টারগুলো কমপোজড ফর্মে থাকে |
| FormD | Normalization Form D (NFD) | Canonical Decomposition - ক্যারেক্টারগুলো ডিকমপোজড ফর্মে থাকে |
| FormKC | Normalization Form KC (NFKC) | Compatibility Composition - কমপ্যাটিবিলিটি কমপোজিশন |
| FormKD | Normalization 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()মেথড ব্যবহার করে স্ট্রিংকে নির্দিষ্ট ফর্মে নর্মালাইজ করা যায়।- ডাটাবেস কুয়েরি, ফাইল সিস্টেম অপারেশন, নেটওয়ার্ক প্রোটোকলে নর্মালাইজেশন অত্যন্ত গুরুত্বপূর্ণ।