Char.IsSurrogate(string, int index) মেথড ব্যবহার করে একটি স্ট্রিংয়ের নির্দিষ্ট পজিশনের ক্যারেক্টারটি সারোগেট কোড ইউনিট (UTF-16 সারোগেট পেয়ার) কিনা চেক করা যায়।
উদাহরণ ১: সারোগেট কোড আছে
using System;
public class Demo {
public static void Main() {
string str = new String(new char[] { 'k', 'm', 'g', 't', '\uD800' });
bool res = Char.IsSurrogate(str, 4);
if (res)
Console.WriteLine("Contains Surrogate value!");
else
Console.WriteLine("Does not contain Surrogate value!");
}
}
আউটপুট
Contains Surrogate value!
উদাহরণ ২: সারোগেট কোড নেই
using System;
public class Demo {
public static void Main() {
string str = new String(new char[] { 'k', 'm', 'g', 't', 'w' });
bool res = Char.IsSurrogate(str, 4);
if (res)
Console.WriteLine("Contains Surrogate value!");
else
Console.WriteLine("Does not contain Surrogate value!");
}
}
আউটপুট
Does not contain Surrogate value!
ব্যাখ্যা
- UTF-16-এ কিছু ক্যারেক্টার (ইমোজি, রেয়ার ক্যারেক্টার) ২টি ১৬-বিট কোড ইউনিট দিয়ে রিপ্রেজেন্ট করা হয় — এগুলোকে সারোগেট পেয়ার বলে।
\uD800হাই সারোগেট রেঞ্জের শুরু।Char.IsSurrogateহাই বা লো সারোগেট দুটোই ডিটেক্ট করে।- সম্পূর্ণ সারোগেট পেয়ার চেক করতে
Char.IsSurrogatePairব্যবহার করুন।