<a href="http://www.cnblogs.com/qtqq/p/6195641.html#_label0">首先在nuget引用對應的包</a>
<a href="http://www.cnblogs.com/qtqq/p/6195641.html#_label1">簡單的demo</a>
<a href="http://www.cnblogs.com/qtqq/p/6195641.html#_label2">漢字轉拼音類封裝</a>
<a href="http://www.cnblogs.com/qtqq/p/6195641.html#_label3">源碼分享</a>
之前由于項目需要,中間需要一個漢字轉拼音和首拼的功能來做查詢,感覺這種功能基本已經成熟化了,于是查找了相關的代碼,首先引入眼簾的是下面兩篇文章
感謝兩位部落客,寫的比較全也很詳細,都有提供源碼,大家可以參考下。
由于考慮到接口的需要,于是參考了 第一篇,文章中作者的源碼基本能滿足漢字轉拼音的需要,對于其他特殊的字元,也可以在進行添加補充,不足之處就是不支援多音字,由于需要支援多音字的查詢,是以後面有查了下其他的文章,發現還沒有現成的文章(也可能本人的搜尋水準比較水)。後來查找發現對于漢字轉拼音,原來微軟已經提供了 Microsoft Visual Studio International Pack ,而且很強大。于是試了一下
查找 PinYinConverter

小試一下,使用也非常簡單,隻要直接使用ChineseChar類進行裝換就好
結果如下:
我們可以看到, 行 的多音字有 hang,heng,xing 三個,這裡連音标也出來了,确實很友善。而我需要的功能是輸入 銀行 ,然後轉換為拼音是 yinhang,yinheng,yinxing, 首拼是 yh,yx。有ChineseChar 這個類的話做起來思路就簡單了。
1.首先對輸入的漢字進行拆分
2.接着每個漢字用ChineseChar 擷取多個拼音
3.然後除去數字,去重,提取首字元,再在進行組合就好了
于是寫了個幫助類進行裝換,代碼如下:
結果:
目前試過一些生僻字都是能支援,對于一些太偏的還沒試過,不過對于一般漢字轉拼音的,多音字支援這裡就已經足夠了。
這裡僅僅是使用了 Microsoft Visual Studio International Pack 這個擴充包裡面的漢字轉拼音功能,其實裡面還有中文、日文、韓文、英語等各國語言包,并提供方法實作互轉、獲、擷取字數、甚至擷取筆畫數等等強大的功能,有興趣的朋友可以自行查詢下它的api。
分享是一種美德,有時候牛逼的文章可以提高我們的技術層面,但有時候更多的需求是業務層面,很多小知識應用的分享卻可以幫我們提高業務層面的問題。隻要分享的知識點有用,不誤人子弟,哪怕大小都是一種學習,是以也希望大家能勇于分享。
最後,源碼分享出來給大家,如果有錯誤和不足的地方,也希望指正