首頁 後端開發 C#.Net教程 C#漢字轉拼音(支援多音字)

C#漢字轉拼音(支援多音字)

Feb 06, 2017 pm 04:46 PM

之前由於專案需要,中間需要一個漢字轉拼音和首拼的功能來做查詢,感覺這種功能基本上已經成熟化了,於是查找了相關的代碼,首先引入眼簾的是下面兩篇文章

C#漢字轉拼音(支援GB2312字符集中所有漢字)(http://www.cnblogs.com/cxd4321/p/4203383.html)

【乾貨】JS版漢字與拼音互轉終極方案,附簡單的JS拼音輸入法(http://www.cnblogs.com/liuxianan/p/pinyinjs.html)

感謝兩位博主,寫的比較全也很詳細,都有提供源碼,大家可以參考下。

由於考慮到接口的需要,於是參考了 第一篇,文章中作者的源碼基本能滿足漢字轉拼音的需要,對於其他特殊的字符,也可以在進行添加補充,不足之處就是不支持多音字,由於需要支援多音字的查詢,所以後面有查了下其他的文章,發現還沒有現成的文章(也可能本人的搜尋等級比較水)。

後來找到發現對於漢字轉拼音,原來微軟已經提供了 Microsoft Visual Studio International Pack ,而且很強大。於是試了一下

首先在nuget引用對應的包

 查找 PinYinConverter

C#漢字轉拼音(支援多音字)

簡單的demo

小試用如下:

C#漢字轉拼音(支援多音字)我們可以看到, 行 的多音字有 hang,heng,xing 三個,這裡連音標也出來了,確實很方便。而我需要的功能是輸入 銀行 ,然後轉換為拼音是 yinhang,yinheng,yinxing,  首拼是 yh,yx。有ChineseChar 這個類的話做起來思路就簡單了。

漢字轉拼音類封裝

1.首先將輸入的漢字拆分

2.接著每個漢字用ChineseChar 獲取多個拼音

3.然後除去數字,去重,提取首字符,再在進行組合就好了

於是寫了個幫助類進行裝換,代碼如下:

string ch = Console.ReadLine();
ChineseChar cc = new ChineseChar(ch[0]);
var pinyins = cc.Pinyins.ToList();
pinyins.ForEach(Console.WriteLine);
登入後複製

結果:

C#漢字轉拼音(支援多音字)目前試過一些生僻字都是能支持,對於一些太偏的還沒試過,不過對於一般漢字轉拼音的,多音字支持這裡就已經足夠了。


這裡僅是使用了 Microsoft Visual Studio International Pack 這個擴充包裡面的漢字轉拼音功能,其實裡面還有中文、日文、韓文、英文等各國語言包,並提供方法實現互轉、獲、取得字數、甚至取得筆畫數等等強大的功能,有興趣的朋友可以自行查詢下它的api。


源碼分享


分享是一種美德,有時牛逼的文章可以提高我們的技術層面,但有時候更多的需求是業務層面,很多小知識應用的分享卻可以幫我們提高業務層面的問題。只要分享的知識點有用,不誤人子弟,就算大小都是一種學習,所以也希望大家能勇於分享。

位址:https://github.com/qq1206676756/PinYinParse

以上就是C#漢字轉拼音(支援多音字)的內容,更多相關內容請關注PHP中文網(www.php.cn)!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

使用 C# 的活動目錄 使用 C# 的活動目錄 Sep 03, 2024 pm 03:33 PM

使用 C# 的 Active Directory 指南。在這裡,我們討論 Active Directory 在 C# 中的介紹和工作原理以及語法和範例。

C# 序列化 C# 序列化 Sep 03, 2024 pm 03:30 PM

C# 序列化指南。這裡我們分別討論C#序列化物件的介紹、步驟、工作原理和範例。

C# 中的隨機數產生器 C# 中的隨機數產生器 Sep 03, 2024 pm 03:34 PM

C# 隨機數產生器指南。在這裡,我們討論隨機數產生器的工作原理、偽隨機數和安全數的概念。

C# 資料網格視圖 C# 資料網格視圖 Sep 03, 2024 pm 03:32 PM

C# 資料網格視圖指南。在這裡,我們討論如何從 SQL 資料庫或 Excel 檔案載入和匯出資料網格視圖的範例。

C# 中的階乘 C# 中的階乘 Sep 03, 2024 pm 03:34 PM

C# 階乘指南。這裡我們討論 C# 中階乘的介紹以及不同的範例和程式碼實作。

C# 中的模式 C# 中的模式 Sep 03, 2024 pm 03:33 PM

C# 模式指南。在這裡,我們討論 C# 中模式的介紹和前 3 種類型,以及其範例和程式碼實作。

C# 中的質數 C# 中的質數 Sep 03, 2024 pm 03:35 PM

C# 質數指南。這裡我們討論c#中素數的介紹和範例以及程式碼實作。

c#多線程和異步的區別 c#多線程和異步的區別 Apr 03, 2025 pm 02:57 PM

多線程和異步的區別在於,多線程同時執行多個線程,而異步在不阻塞當前線程的情況下執行操作。多線程用於計算密集型任務,而異步用於用戶交互操作。多線程的優勢是提高計算性能,異步的優勢是不阻塞 UI 線程。選擇多線程還是異步取決於任務性質:計算密集型任務使用多線程,與外部資源交互且需要保持 UI 響應的任務使用異步。

See all articles