汉字拼音转换类库的使用
2015-09-30 10:33
323 查看
效果图:
![](http://img.blog.csdn.net/20150930102520216)
算法参考:
笛卡尔积
列出姓名(字符串)所有拼音组合示例
算法参考:
笛卡尔积
列出姓名(字符串)所有拼音组合示例
private void txtHanzi_TextChanged(object sender, EventArgs e) { lstPinyin.Items.Clear(); string input = txtHanzi.Text.Trim(); List<List<string>> list = GetPinyin(input); if (list.Count==0) { return; } List<string> res = list[0]; for (int i = 1; i < list.Count; i++) { res = GetDecart(res, list[i]); } lblCount.Text = res.Count + "个"; for (int i = 0; i < res.Count; i++) { lstPinyin.Items.Add(res[i]); } }
private List<string> GetChPinyin(char c) { ChineseChar ch = new ChineseChar(c); List<string> list = new List<string>(); for (int i = 0; i < ch.Pinyins.Count; i++) { string temp = ch.Pinyins[i]; if (temp==null) { continue; } temp = temp.Substring(0, temp.Length - 1); if (!list.Contains(temp)) { list.Add(temp); } } return list; }
private List<List<string>> GetPinyin(string s) { List<List<string>> list = new List<List<string>>(); for (int i = 0; i < s.Length; i++) { char c = s[i]; list.Add(GetChPinyin(c)); } return list; }
private List<string> GetDecart(List<string> l1, List<string> l2) { List<string> list = new List<string>(); for (int i = 0; i < l1.Count; i++) { for (int j = 0; j < l2.Count; j++) { list.Add(l1[i] + " " + l2[j]); } } return list; }
相关文章推荐
- android实现系统电话通话过程中自动感应黑屏
- iOS 静态库,动态库与 Framework
- iOS 静态库,动态库与 Framework
- 见缝插针
- ocp-v13-065
- SQL注入
- 去掉 AD13 PCB网络连线中的双斜杠
- (重要)Stanford机器学习---怎样选择机器学习方法、系统
- flume学习(二):如何找到cm安装的flume的配置文件
- 全面解释java中StringBuilder、StringBuffer、String类之间的关系
- 《.NET程序员面试秘籍》读书笔记
- 在积累中成长-记2015周年总结
- 四舍五入VS银行家舍入法
- java中的一些组件
- 如果使用得当,MySQL 也可以化身 NoSQL
- ocp-v13-064
- 名人演讲并没有实际意义、跟名人传一样
- C++中的字节对齐
- 设计模式-开发中的23种设计模式详解
- 赢商网 > 赢商新闻 > 社区商业