汉字处理组件

有时候项目中会根据用户姓名的拼音检索数据,微软专门提供了一个组件安装包来处理非英文的特殊语言,名称为 

Microsoft Visual Studio International Pack 

下载这个安装包,然后安装简体中文的组件

 

默认的安装路径为:C:\Program Files (x86)\Microsoft Visual Studio International Pack\Simplified Chinese Pin-Yin Conversion Library

要在项目中使用这种汉字处理方法需要添加该目录下的dll文件:ChnCharInfo.dll

 

以下是这个简体中文包提供的方法

测试代码:

using Microsoft.International.Converters.PinYinConverter;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 获取汉字拼音
{
    class Program
    {
        static void Main(string[] args)
        {
            // 1.获取指定汉字的拼音
            ChineseChar cc = new ChineseChar('');
            // 因为汉字有可能是多音字,所以循环遍历输出所有的拼音
            foreach (var str in cc.Pinyins)
            {
                // 输出结果为:LE4,YUE4。(注意:拼音后面的数字代表声调)
                Console.WriteLine(str);
            }
            // 2.获取这个汉字字符。
            Console.WriteLine(cc.ChineseCharacter); // 输出结果:乐

            // 3.获取这个字符的笔画数。 
            Console.WriteLine(cc.StrokeNumber); // 输出结果:5

            // 4.获取这个字符的拼音个数。 
            Console.WriteLine(cc.PinyinCount);  // 输出结果:2

            // 5.将给出的字符和实例字符的笔画数进行比较。输出结果为“乐” 字的笔画数减去要比较的汉字笔画数
            Console.WriteLine(cc.CompareStrokeNumber('')); // “乐”字的笔画数比“中”字的笔画数多1,输出结果:1
            Console.WriteLine(cc.CompareStrokeNumber('')); // “乐”字的笔画数和“主”字的笔画数一样多,输出结果:0
            Console.WriteLine(cc.CompareStrokeNumber('')); // “国”字的笔画数比“乐”字的笔画数多3,输出结果:-3

            // 6.检索具有指定笔画数的字符个数。 
            Console.WriteLine(ChineseChar.GetCharCount(1));

            // 7.检索具有指定笔画数的所有字符串。 
            char[] cSameStrokeNum = ChineseChar.GetChars(1);
            foreach (var c in cSameStrokeNum)
            {
                Console.WriteLine(c);
            }

            // 8.获取给定拼音的所有同音字。 
            char[] cSamePinyin = ChineseChar.GetChars("shao4"); // PS:必须指定拼音的声调
            foreach (var c in cSamePinyin)
            {
                Console.WriteLine(c);
            }

            // 9.还有很多其他方法
            Console.ReadKey();
        }
    }
}
View Code

 

posted @ 2015-01-25 16:51  萌浩  阅读(237)  评论(0编辑  收藏  举报