C#取汉字的拼音或拼音首字母

 
using  System;

namespace  pyzh
{
    
/// <summary>
    
/// PY 的摘要说明。
    
/// </summary>

    public class PY
    
{
        
// Fields
        private string m_strAbbreviation;
        
private string m_strFullCode;
        
private string m_strFullCodeWithSpace;
        
private string m_strInput;
        
private static string[] pyStr;
        
private static int[] pyValue;

        
public PY()
        
{
            
//
            
// TODO: 在此处添加构造函数逻辑
            
//
        }

        
public string GetAbbreviation(string strInput)
        
{
            
this.m_strInput = strInput;
            
this.GetPyCode();
            
return this.m_strAbbreviation;
        }



        
public string GetFullCode(string strInput)
        
{
            
this.m_strInput = strInput;
            
this.GetPyCode();
            
return this.m_strFullCode;
        }



        
public string GetFullCodeWithSpace(string strInput)
        
{
            
this.m_strInput = strInput;
            
this.GetPyCode();
            
return this.m_strFullCodeWithSpace;
        }



        
private bool GetPyCode()
        
{
            
this.m_strFullCode = "";
            
this.m_strFullCodeWithSpace = "";
            
this.m_strAbbreviation = "";
            
byte[] buffer1 = new byte[2];
            
int num1 = 0;
            
int num2 = 0;
            
int num3 = 0;
            
char[] chArray1 = this.m_strInput.ToCharArray();
            
for (int num4 = 0; num4 < chArray1.Length; num4++)
            
{
                buffer1 
= System.Text.Encoding.Default.GetBytes(chArray1[num4].ToString());
                num2 
= buffer1[0];
                
if (num2 <= 0x7f)
                
{
                    
this.m_strFullCode = this.m_strFullCode + chArray1[num4];
                    
this.m_strFullCodeWithSpace = this.m_strFullCodeWithSpace + chArray1[num4];
                    
this.m_strFullCodeWithSpace = this.m_strFullCodeWithSpace + " ";
                    
this.m_strAbbreviation = this.m_strAbbreviation + chArray1[num4];
                }

                
else
                
{
                    num3 
= buffer1[1];
                    num1 
= ((num2 * 0x100+ num3) - 0x10000;
                    
if ((num1 > 0&& (num1 < 160))
                    
{
                        
this.m_strFullCode = this.m_strFullCode + chArray1[num4];
                        
this.m_strFullCodeWithSpace = this.m_strFullCodeWithSpace + chArray1[num4];
                        
this.m_strFullCodeWithSpace = this.m_strFullCodeWithSpace + " ";
                        
this.m_strAbbreviation = this.m_strAbbreviation + chArray1[num4];
                    }

                    
else
                    
{
                        
for (int num5 = PY.pyValue.Length - 1; num5 >= 0; num5--)
                        
{
                            
if (PY.pyValue[num5] <= num1)
                            
{
                                
this.m_strFullCode = this.m_strFullCode + PY.pyStr[num5];
                                
this.m_strFullCodeWithSpace = this.m_strFullCodeWithSpace + PY.pyStr[num5];
                                
this.m_strFullCodeWithSpace = this.m_strFullCodeWithSpace + " ";
                                
this.m_strAbbreviation = this.m_strAbbreviation + PY.pyStr[num5].Substring(01);
                                
break;
                            }

                        }

                    }

                }

            }

            
return true;
        }


        
static PY()
        
{
            PY.pyValue 
= new int[] 
           
-20319-20317-20304-20295-20292-20283-20265-20257-20242-20230-20051-20036-20032-20026-20002-19990
           
-19986-19982-19976-19805-19784-19775-19774-19763-19756-19751-19746-19741-19739-19728-19725-19715
           
-19540-19531-19525-19515-19500-19484-19479-19467-19289-19288-19281-19275-19270-19263-19261-19249
           
-19243-19242-19238-19235-19227-19224-19218-19212-19038-19023-19018-19006-19003-18996-18977-18961
           
-18952-18783-18774-18773-18763-18756-18741-18735-18731-18722-18710-18697-18696-18526-18518-18501
           
-18490-18478-18463-18448-18447-18446-18239-18237-18231-18220-18211-18201-18184-18183-18181-18012
           
-17997-17988-17970-17964-17961-17950-17947-17931-17928-17922-17759-17752-17733-17730-17721-17703
           
-17701-17697-17692-17683-17676-17496-17487-17482-17468-17454-17433-17427-17417-17202-17185-16983
           
-16970-16942-16915-16733-16708-16706-16689-16664-16657-16647-16474-16470-16465-16459-16452-16448
           
-16433-16429-16427-16423-16419-16412-16407-16403-16401-16393-16220-16216-16212-16205-16202-16187
           
-16180-16171-16169-16158-16155-15959-15958-15944-15933-15920-15915-15903-15889-15878-15707-15701
           
-15681-15667-15661-15659-15652-15640-15631-15625-15454-15448-15436-15435-15419-15416-15408-15394
           
-15385-15377-15375-15369-15363-15362-15183-15180-15165-15158-15153-15150-15149-15144-15143-15141
           
-15140-15139-15128-15121-15119-15117-15110-15109-14941-14937-14933-14930-14929-14928-14926-14922
           
-14921-14914-14908-14902-14894-14889-14882-14873-14871-14857-14678-14674-14670-14668-14663-14654
           
-14645-14630-14594-14429-14407-14399-14384-14379-14368-14355-14353-14345-14170-14159-14151-14149
           
-14145-14140-14137-14135-14125-14123-14122-14112-14109-14099-14097-14094-14092-14090-14087-14083
           
-13917-13914-13910-13907-13906-13905-13896-13894-13878-13870-13859-13847-13831-13658-13611-13601
           
-13406-13404-13400-13398-13395-13391-13387-13383-13367-13359-13356-13343-13340-13329-13326-13318
           
-13147-13138-13120-13107-13096-13095-13091-13076-13068-13063-13060-12888-12875-12871-12860-12858
           
-12852-12849-12838-12831-12829-12812-12802-12607-12597-12594-12585-12556-12359-12346-12320-12300
           
-12120-12099-12089-12074-12067-12058-12039-11867-11861-11847-11831-11798-11781-11604-11589-11536
           
-11358-11340-11339-11324-11303-11097-11077-11067-11055-11052-11045-11041-11038-11024-11020-11019
           
-11018-11014-10838-10832-10815-10800-10790-10780-10764-10587-10544-10533-10519-10331-10329-10328
           
-10322-10315-10309-10307-10296-10281-10274-10270-10262-10260-10256-10254
          }
;
            PY.pyStr 
= new string[] 
            
"a""ai""an""ang""ao""ba""bai""ban""bang""bao""bei""ben""beng""bi""bian""biao"
            
"bie""bin""bing""bo""bu""ca""cai""can""cang""cao""ce""ceng""cha""chai""chan""chang"
            
"chao""che""chen""cheng""chi""chong""chou""chu""chuai""chuan""chuang""chui""chun""chuo""ci""cong"
            
"cou""cu""cuan""cui""cun""cuo""da""dai""dan""dang""dao""de""deng""di""dian""diao"
            
"die""ding""diu""dong""dou""du""duan""dui""dun""duo""e""en""er""fa""fan""fang"
            
"fei""fen""feng""fo""fou""fu""ga""gai""gan""gang""gao""ge""gei""gen""geng""gong"
            
"gou""gu""gua""guai""guan""guang""gui""gun""guo""ha""hai""han""hang""hao""he""hei"
            
"hen""heng""hong""hou""hu""hua""huai""huan""huang""hui""hun""huo""ji""jia""jian""jiang"
            
"jiao""jie""jin""jing""jiong""jiu""ju""juan""jue""jun""ka""kai""kan""kang""kao""ke"
            
"ken""keng""kong""kou""ku""kua""kuai""kuan""kuang""kui""kun""kuo""la""lai""lan""lang"
            
"lao""le""lei""leng""li""lia""lian""liang""liao""lie""lin""ling""liu""long""lou""lu"
            
"lv""luan""lue""lun""luo""ma""mai""man""mang""mao""me""mei""men""meng""mi""mian"
            
"miao""mie""min""ming""miu""mo""mou""mu""na""nai""nan""nang""nao""ne""nei""nen"
            
"neng""ni""nian""niang""niao""nie""nin""ning""niu""nong""nu""nv""nuan""nue""nuo""o"
            
"ou""pa""pai""pan""pang""pao""pei""pen""peng""pi""pian""piao""pie""pin""ping""po"
            
"pu""qi""qia""qian""qiang""qiao""qie""qin""qing""qiong""qiu""qu""quan""que""qun""ran"
            
"rang""rao""re""ren""reng""ri""rong""rou""ru""ruan""rui""run""ruo""sa""sai""san"
            
"sang""sao""se""sen""seng""sha""shai""shan""shang""shao""she""shen""sheng""shi""shou""shu"
            
"shua""shuai""shuan""shuang""shui""shun""shuo""si""song""sou""su""suan""sui""sun""suo""ta"
            
"tai""tan""tang""tao""te""teng""ti""tian""tiao""tie""ting""tong""tou""tu""tuan""tui"
            
"tun""tuo""wa""wai""wan""wang""wei""wen""weng""wo""wu""xi""xia""xian""xiang""xiao"
            
"xie""xin""xing""xiong""xiu""xu""xuan""xue""xun""ya""yan""yang""yao""ye""yi""yin"
            
"ying""yo""yong""you""yu""yuan""yue""yun""za""zai""zan""zang""zao""ze""zei""zen"
            
"zeng""zha""zhai""zhan""zhang""zhao""zhe""zhen""zheng""zhi""zhong""zhou""zhu""zhua""zhuai""zhuan"
            
"zhuang""zhui""zhun""zhuo""zi""zong""zou""zu""zuan""zui""zun""zuo"
           }
;
        }



    }

}




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用第三方库来实现汉字拼音的功能,比如 NuGet 上的 NPOI 或者 PinyinConverter。以下是使用 PinyinConverter 来实现汉字拼音首字母大写的示例代码: ```csharp using System; using System.Globalization; using System.Text; using PinyinConverter; class Program { static void Main(string[] args) { string input = "汉字拼音"; string output = GetPinyin(input, true); Console.WriteLine(output); // "HZZPY" } static string GetPinyin(string input, bool capitalizeFirstLetter) { StringBuilder result = new StringBuilder(); foreach (char c in input) { if (ChineseChar.IsValidChar(c)) { ChineseChar chineseChar = new ChineseChar(c); string pinyin = chineseChar.Pinyins[0]; if (capitalizeFirstLetter) { pinyin = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(pinyin); } result.Append(pinyin[0]); } else { result.Append(c); } } return result.ToString(); } } ``` 代码解释: 1. 引入 `PinyinConverter` 命名空间。 2. 在 `Main` 方法中,定义一个字符串 `input`,表示要转换成拼音汉字字符串。 3. 调用 `GetPinyin` 方法,传入 `input` 字符串和一个布尔值 `true`,表示要将拼音首字母大写。 4. `GetPinyin` 方法中,使用 `StringBuilder` 构造一个字符串 `result`,用于存储转换后的拼音。 5. 遍历 `input` 字符串中的每个字符,判断是否是中文字符。 6. 如果是中文字符,则使用 `ChineseChar` 对象将其转换成拼音字符串,并获第一个拼音字符串。 7. 如果需要将拼音首字母大写,则使用 `ToTitleCase` 方法将其转换成首字母大写的形式。 8. 将拼音字符串的首字母添加到 `result` 中。 9. 如果不是中文字符,则将其直接添加到 `result` 中。 10. 最后将 `result` 转换成字符串并返回。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值