志在指尖
用双手敲打未来

C# 汉字转拼音

publicclassPinYinHelper
{
privatestaticEncodinggb2312=Encoding.GetEncoding(“GB2312”);
///
///汉字转全拼
///
publicstaticstringConvertToAllSpell(stringstrChinese,IDictionary<char,string>pinyinDic=null)
{
try
{
if(strChinese.Length!=0)
{
varfullSpell=newStringBuilder();
for(vari=0;i<strChinese.Length;i++)C#
{
varchr=strChinese[i];
varpinyin=GetSpell(chr);
fullSpell.Append(pinyin);
}
returnfullSpell.ToString().ToLower();
}
}
catch(Exceptione)
{
Console.WriteLine(“全拼转化出错!”+e.Message);
}
returnstring.Empty;
}
///
///汉字转首字母
///
///
///
publicstaticstringGetFirstSpell(stringstrChinese)
{
//NPinyin.Pinyin.GetInitials(strChinese)有Bug洺无法辨认
//returnNPinyin.Pinyin.GetInitials(strChinese);
try
{
if(strChinese.Length!=0)
{
varfullSpell=newStringBuilder();
for(vari=0;i<strChinese.Length;i++)
{
varchr=strChinese[i];
fullSpell.Append(GetSpell(chr)[0]);
}
returnfullSpell.ToString().ToLower();
}
}
catch(Exceptione)
{
Console.WriteLine(“首字母转化出错!”+e.Message);
}
returnstring.Empty;
}
privatestaticstringGetSpell(charchr)
{
varcoverchr=NPinyin.Pinyin.GetPinyin(chr);
varisChineses=ChineseChar.IsValidChar(coverchr[0]);
if(isChineses)
{
varchineseChar=newChineseChar(coverchr[0]);
foreach(varvalueinchineseChar.Pinyins)
{
if(!string.IsNullOrEmpty(value))
{
returnvalue.Remove(value.Length-1,1);
}
}
}
returncoverchr;
}
///
///从字典获取拼音
///
///字
///字典
///
privatestaticstringGetFromPinYinDic(charc,IDictionary<char,string>pinyinDic)
{
if(pinyinDic==null
||pinyinDic.Count==0
||!pinyinDic.ContainsKey(c))
{
return””;
}
returnpinyinDic[c];
}
}

未经允许不得转载:IT技术网站 » C# 汉字转拼音
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

志在指尖 用双手敲打未来

登录/注册IT技术大全

热门IT技术

C#基础入门   SQL server数据库   系统SEO学习教程   WordPress小技巧   WordPress插件   脚本与源码下载