1. 程式人生 > >C#由漢字獲取拼音或者首字母的幫助類

C#由漢字獲取拼音或者首字母的幫助類

 我們在做系統是經常遇到需要通過漢字提取漢字拼音 的情況 ,我在網上搜集了幾種獲取方案包含了收首字母和完整拼音的獲取,供大家參考!方案一:這個本人測試通過,最簡單
  1. /// <summary>
  2.    /// 獲取拼音
  3.    /// </summary>
  4.    /// <param name="str"></param>
  5.    /// <returns></returns>
  6.    publicstring GetPYString(string str)  
  7.    {  
  8.        string tempStr = "";  
  9.        foreach (char c in
     str)  
  10.        {  
  11.            if ((int)c >= 33 && (int)c <= 126)  
  12.            {//字母和符號原樣保留   
  13.                tempStr += c.ToString();  
  14.            }  
  15.            else
  16.            {//累加拼音聲母   
  17.                tempStr += GetPYChar(c.ToString());  
  18.            }  
  19.        }  
  20.        return tempStr;  
  21.    }  
  22.    ///    
  23.    /// 取單個字元的拼音聲母   
  24.    ///    
  25.    /// 要轉換的單個漢字   
  26.    /// 拼音聲母   
  27.    publicstring GetPYChar(string c)  
  28.    {  
  29.        byte[] array = newbyte[2];  
  30.        array = System.Text.Encoding.Default.GetBytes(c);  
  31.        int i = (short)(array[0] - '\0') * 256 + ((short)(array[1] - '\0'));  
  32.        if (i < 0xB0A1) return"*";  
  33.        if
     (i < 0xB0C5) return"a";  
  34.        if (i < 0xB2C1) return"b";  
  35.        if (i < 0xB4EE) return"c";  
  36.        if (i < 0xB6EA) return"d";  
  37.        if (i < 0xB7A2) return"e";  
  38.        if (i < 0xB8C1) return"f";  
  39.        if (i < 0xB9FE) return"g";  
  40.        if (i < 0xBBF7) return"h";  
  41.        if (i < 0xBFA6) return"j";  
  42.        if (i < 0xC0AC) return"k";  
  43.        if (i < 0xC2E8) return"l";  
  44.        if (i < 0xC4C3) return"m";  
  45.        if (i < 0xC5B6) return"n";  
  46.        if (i < 0xC5BE) return"o";  
  47.        if (i < 0xC6DA) return"p";  
  48.        if (i < 0xC8BB) return"q";  
  49.        if (i < 0xC8F6) return"r";  
  50.        if (i < 0xCBFA) return"s";  
  51.        if (i < 0xCDDA) return"t";  
  52.        if (i < 0xCEF4) return"w";  
  53.        if (i < 0xD1B9) return"x";  
  54.        if (i < 0xD4D1) return"y";  
  55.        if (i < 0xD7FA) return"z";  
  56.        return"*";  
  57.    }  


-----------------------------------------------------------------------------------方案二;轉自:  http://blog.csdn.net/s_nuclear/article/details/11404089

首先要引用Visual Studio International Pack -->CHSPinYinConv.msi  裡面的包ChnCharInfo

  1. using Microsoft.International.Converters.PinYinConverter;   //引入名稱空間
  2.  /// <summary>
  3.         /// 獲得一個字串的拼音
  4.         /// </summary>
  5.         /// <param name="str"></param>
  6.         /// <returns></returns>
  7.         publicstaticstring GetPinYin(string str)  
  8.         {  
  9.             StringBuilder sb = new StringBuilder();  
  10.             foreach (char item in str)  
  11.             {  
  12.                 //判斷是不是漢字,如果不是原字元返回
  13.                 if (ChineseChar.IsValidChar(item))  
  14.                 {  
  15.                     sb.Append(GetPinYin(item));  
  16.                 }  
  17.                 else
  18.                 {  
  19.                     sb.Append(item);  
  20.                 }  
  21.             }  
  22.             return sb.ToString();  
  23.         }  
  24.         /// <summary>
  25.         /// 獲得單個字元的拼音
  26.         /// </summary>
  27.         /// <param name="c"></param>
  28.         /// <returns></returns>
  29.         publicstaticstring GetPinYin(char c)  
  30.         {  
  31.             ChineseChar cc = new ChineseChar(c);  
  32.             string str = cc.Pinyins[0]; //多音字只取第一個
  33.             return str.Substring(0, str.Length - 1); //去掉最後的聲調
  34.         }  


----------------------------------------------------------------------------------------------------------------------------------------------------------------------方案三;轉自http://www.xue163.com/exploit/26/268558.html
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Text;  
  4. using System.Text.RegularExpressions;  
  5. namespace Ctr.Common.Tools  
  6. {  
  7.     /// <summary>
  8.     /// 漢字轉拼音靜態類,包括功能全拼和縮寫,方法全部是靜態的
  9.     /// </summary>
  10.    publicstaticclass Chinese2Spell  
  11. 相關推薦

    C#漢字獲取拼音或者字母幫助

     我們在做系統是經常遇到需要通過漢字提取漢字拼音 的情況 ,我在網上搜集了幾種獲取方案包含了收首字母和完整拼音的獲取,供大家參考!方案一:這個本人測試通過,最簡單/// <summary> 

    SQL 漢字拼音字母 .sql 檔案

    IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[fn_procGetPY]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT'))

    Android工具——拼音幫助PinyinUtils,漢字拼音字母

    import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType; import net.sourceforge.pinyin4

    select2中文選項通過拼音或者字母快速定位選項

    使用select2的時候,想通過拼音或者首字母檢索下拉的選項,但是又沒有通過ajax等技術去實現 這時候可以試試用這種偽方法~這種方法的好處就是快、方便使用 預設select2如圖: 程式碼:

    C#漢字生成拼音碼,很實用的

    由漢字生成拼音碼,很實用的類using System;using System.Text;namespace oops{public class ChineseConvertor{private ChineseConvertor() {}/// <summary>/// 獲取一串漢字的拼音聲母//

    C#輸入漢字獲取拼音

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq;

    我的程式設計學習日誌(15)--C/C++實現輸出漢字拼音字母

    說實話,寫的程式越多,就越討厭漢字,因為漢字在計算機裡的編碼不統一,不像英文字母那樣一個ascll碼就解決。 就比如做的那個地鐵導航,還有flppy bird程式,當時就被怎麼查漢字還有漢字編碼轉換問

    Java獲取獲取漢字拼音字母程式碼

    1、定義一個Bean: public class PinyinCode {  private String pinyin;  private int code;    public PinyinCode(String py, int cd) {   pinyin = py;

    在vc中實現獲取漢字拼音字母

    最近打算做一個基於字串首字元(漢字取拼音的首字母)進行查詢的電話簿WEB專案,由於Web本身並不支援漢字的編碼程式設計,因此需要求助於平臺開發工具。  Google上搜到一種實現方法,是用C++實現的。以下是原始碼:  void GetFirstLetter(CString

    獲取中文的字母demo

    convert 字母 cef 測試 rip script imp ati system import net.sourceforge.pinyin4j.PinyinHelper; /** * * @Title: getPinYinHeadChar * @De

    拼音中文字母大寫查詢

            最新的商城專案需要用到拼音首字母大寫查詢,首先想加個欄位存中文拼音的,覺得太麻煩,還是用sql解決快一些,lz用的是mysql。         解決的思路就是建

    獲得漢字拼音或者拼音簡寫

    using System;using System.Collections;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks; namespace Common.

    Android開發實現選擇城市介面,可根據拼音字母進行搜尋

    短短的國慶8天假期一眨眼就過去了,下次長假只有等到過年了,本寶寶不開心。既然已經開始工作了,就要好好多學習點新知識,來提高自己的程式碼能力,今天帶大家去實現簡易的選擇城市介面,並且可以根據城市首字母或者拼音搜尋。先來看下我的效果圖:   在寫程式碼之前先準備好一個城市列表的

    ios搜尋(可實現模糊搜尋 支援拼音檢索 字母等)

    一、搜框中輸入關鍵字的事件響應 -(void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText{ NSLog(@"輸入的關鍵字是---%@---%lu",s

    C# bool型別轉化為字串字母會大寫

    C#中bool型別在轉化為字串型別時會自動大些首字母!!!!!!!!!......... 這樣:.. 怎麼解決呢。。 如果想在bool型別是 都轉化為小寫的 就這樣 一句搞定 bool b

    C#實現漢字拼音(包括生僻字)

    專案裡面有一個功能是將使用者的名字轉變成拼音全拼,但是在使用過程中,有很多人的名字是生僻字,程式根本找不到那個字的拼音,後來看程式碼才發現,轉拼音這個類居然是將一個個的漢字列舉的: 且不說這樣列舉會增加多大的工作量,光這漢字之多,能列舉的完嗎? 後來看了一些資料並借鑑了前

    java根據漢字獲取拼音的方法

         在專案實踐中有時會用到漢字拼音做匹配,最典型的就是火車票售票系統中的拼音匹配。      通過網上的一些搜尋,可使用的jar包如下: <dependency><groupId>com.belerweb</groupId><

    字串獲取字串的字母

    /**  * 取得給定漢字串的首字母串,即聲母串  * Title: ChineseCharToEn  * @date 注:只支援GB2312字符集中的漢字  */   public final class ChineseCharToEn {       priva

    select2下拉搜尋框匹配漢字全拼及字母

    (注:原文出自qq_33142257的部落格http://blog.csdn.net/qq_33142257/article/details/52575823) 最近,專案中需要在使用選擇搜尋框時進行漢字全拼及首字母的匹配搜尋。 專案使用了select2外掛,外掛本身不支援

    實現中等難度通訊錄。需求: 1、定義聯絡人類AddressContact。例項變數:姓名(拼音首字母大寫)、性別、電話號碼、住址、分組名稱、年齡。方法:自定義初始化方法(姓名、電話號碼)、顯示聯絡人

    <span style="font-size:24px;">// 1、定義聯絡人類AddressContact。例項變數:姓名(拼音,首字母大寫)、性別、電話號碼、住址、分組名稱、年齡。方法:自定義初始化方法(姓名、電話號碼)、顯示聯絡人資訊 { NS