23/1/12

[C#] Kiểm tra kí tự có phải là chữ tượng hình hay không


Đôi khi chúng ta cần làm việc với những chuỗi có chứa kí tự Kanji (chữ Hán), chẳng hạn như tôi muốn kiểm tra chuỗi nhập để quyêt định xem có nên hiển thị thêm thông tin về cach viêt chữ đó nữa không.

Trong bảng Unicode của cac ký tự CJKV [1], vị trí đầu tiên (一 nhât) đến vị trí cuối cùng (dự trữ) có mã là từ U+4E00 đến U+9FFF chứa 20,940 ký tự tượng hình phổ biến ở Trung Quôc, Hàn Quôc, Nhật Bản và Việt Nam. Do vậy để kiểm tra một ký tự có phải là chữ tượng hình hay không ta sẽ kiểm tra giá trị của nó.

Trong C#, ta sử dụng hàm sau:
public static bool hasKanji(String character)
    {
        bool isKanji = false;
        foreach(char c in character)
        {
            if(c > '\u4E00' && c < '\u9FFF')
            {
                isKanji = true;
                break;
            }
        }
        return isKanji;
    }
[1] Bảng CJKV thống nhât

Không có nhận xét nào:

Đăng nhận xét