首先去这个地址下载类库:
Visual Studio International Pack 包含一组类库,该类库扩展了.NET Framework对全球化软件开发的支持。使用该类库提供的类,.NET 开发人员可以更方便的创建支持多文化多语言的软件应用。 该软件包1.0版提供下面七个组件以增强.NET Framework对全球化软件应用开发的支持。
using System; using System.Windows.Forms; using Microsoft.International.Converters.PinYinConverter; using Microsoft.International.Converters.TraditionalChineseToSimplifiedConverter; using System.Collections.ObjectModel; namespace ChineseWordDeal { public partial class Form1 : Form { public Form1() { InitializeComponent(); } /// <summary> ///依次获取汉字笔画 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button2_Click(object sender, EventArgs e) { textBox3.Clear(); int L = GetChars().Length; string Res = ""; for (int i = 0; i < L; i++) { char C = GetChars()[i]; //判断是不是有效的汉字 if (ChineseChar.IsValidChar(C)) { //笔画数依次输出 Res += ChineseChar.GetStrokeNumber(C).ToString() + ","; } else { //非有效的汉字则输出?号 Res += ("?,"); } } Res = Res.Substring(0, Res.Length - 1); textBox3.Text = Res; } //获取汉字对应的拼音,不是读音 private void button1_Click(object sender, EventArgs e) { textBox2.Clear(); int L = GetChars().Length; string Res = ""; for (int i = 0; i < L; i++) { char C = GetChars()[i]; if (ChineseChar.IsValidChar(C)) { ChineseChar CC = new ChineseChar(C); //返回单个汉字拼音的所有集合,包括不同读音 ReadOnlyCollection<string> roc = CC.Pinyins; //只获取第一个拼音 string Py = CC.Pinyins[0]; //去掉后面的数字,只截取拼音 Res += Py.Substring(0, Py.Length - 1) + ","; } //不是汉字返回问号 else { Res += "?,"; } } //去掉最后一个逗号 Res = Res.Substring(0, Res.Length - 1); textBox2.Text = Res; } //计算有效的汉字数量 private void textBox1_TextChanged(object sender, EventArgs e) { label4.Text = ""; int L = GetChars().Length; int k = 0; for (int i = 0; i < L; i++) { char C = GetChars()[i]; if (ChineseChar.IsValidChar(C)) { k++; } } label4.Text = "当前汉字个数:" + k.ToString(); } //将文本字符串转化为字符数组输出 public char[] GetChars() { char[] Cs = textBox1.Text.Trim().ToCharArray(); return Cs; } //获取汉字拼音列表,所有的 。处理同汉字拼音 private void button3_Click(object sender, EventArgs e) { richTextBox1.Clear(); int L = GetChars().Length; string Res = ""; for (int i = 0; i < L; i++) { char C = GetChars()[i]; if (ChineseChar.IsValidChar(C)) { ChineseChar CC = new ChineseChar(C); ReadOnlyCollection<string> roc = CC.Pinyins; string R0 = ""; foreach (string s in roc) { R0 += (s + " "); } R0 = R0.Substring(0, R0.Length - 1) + "\n"; Res += C + ":" + R0; } else { Res += "?" + "\n"; } } Res = Res.Substring(0, Res.Length - 1); richTextBox1.Text = Res; } //获取汉字对应的繁体 private void button4_Click(object sender, EventArgs e) { textBox4.Clear(); String simText = textBox1.Text.Trim(); String traText = ChineseConverter.Convert(simText, ChineseConversionDirection.SimplifiedToTraditional); textBox4.Text = traText; } } }
不过:有几个方面主要注意:
下面是Microsoft.International.Converters.PinYinConverter.ChineseChar类的成员:
封装了简体中文的读音和笔画等基本信息。
ChineseCharNew(Char) |
ChineseChar类的构造函数。
|
|
ChineseCharacter |
获取这个汉字字符。
|
|
CompareStrokeNumber(Char) |
将给出的字符和实例字符的笔画数进行比较。
|
|
静态成员 | GetCharCount(Int16) |
检索具有指定笔画数的字符个数。
|
静态成员 | GetChars(String) |
获取给定拼音的所有同音字。
|
静态成员 | GetChars(Int16) |
检索具有指定笔画数的所有字符串。
|
静态成员 | GetHomophoneCount(String) |
检索具有指定拼音的字符数。
|
静态成员 | GetStrokeNumber(Char) |
检索指定字符的笔画数。
|
HasSound(String) |
识别字符是否有指定的读音。
|
|
IsHomophone(Char) |
识别给出的字符是否是实例字符的同音字。
|
|
静态成员 | IsHomophone(Char, Char) |
识别给出的两个字符是否是同音字。
|
IsPolyphone |
获取这个字符是否是多音字。
|
|
静态成员 | IsValidChar(Char) |
识别给出的字符串是否是一个有效的汉字字符。
|
静态成员 | IsValidPinyin(String) |
识别给出的拼音是否是一个有效的拼音字符串。
|
静态成员 | IsValidStrokeNumber(Int16) |
识别给出的笔画数是否是一个有效的笔画数。
|
PinyinCount |
获取这个字符的拼音个数。
|
|
Pinyins |
获取这个字符的拼音。
|
|
StrokeNumber |
获取这个字符的笔画数。
|
其他信息请参与随机安装的chm帮助文件。
喀喀喀~~ 终于将汉字该处理的问题今天全解决了~~ OK~~!!收获颇丰~~10/5/12
以上内容来自:http://hi.baidu.com/jiang_yy_jiang/blog/item/3a94321994308676dab4bd9f.html