Ví dụ 1: Có surrogate
Sử dụng Char.IsSurrogate để kiểm tra:
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("Chứa giá trị Surrogate!");
else
Console.WriteLine("Không chứa giá trị Surrogate!");
}
}
Kết quả
Chứa giá trị Surrogate!
Ví dụ 2: Không có surrogate
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("Chứa giá trị Surrogate!");
else
Console.WriteLine("Không chứa giá trị Surrogate!");
}
}
Kết quả
Không chứa giá trị Surrogate!
Giải thích: Surrogate code units (U+D800 đến U+DFFF) được dùng trong UTF-16 để biểu diễn ký tự ngoài BMP. Char.IsSurrogate kiểm tra ký tự tại vị trí chỉ định có phải surrogate không.