C#汉字转拼音_Microsoft.PinYinConverter汉字转拼音
一、Microsoft.PinYinConverter 引入
1.Nuget命令引入
Install-Package Microsoft.PinYinConverter -Version 1.0.0
2.Nuget包管理引入
Nuget连接地址:NuGet Gallery | Microsoft.PinYinConverter 1.0.0
二、Microsoft.PinYinConverter 使用介绍
ChineseChar使用案例:
多音字返回多个读音,最后一位代表声调,每次只能转换一个字符
var chineseChar = new ChineseChar('解');
var pyStr = chineseChar.Pinyins;
Console.WriteLine(pyStr);
三、Microsoft.PinYinConverter 使用分装
1.多个文字转拼音,使用第一读音
2.获取首字母拼写
3.判断是否是多音字
4.获取笔画个数
public class MsPinYinHelper
{
#region 汉子转拼音
/// <summary>
/// 汉字转全拼
/// </summary>
/// <param name="chinese">汉字</param>
/// <returns></returns>
public static string PinYin(string chinese)
{
string retValue = string.Empty;
foreach (char chr in chinese)
{
try
{
if (ChineseChar.IsValidChar(chr))
{
ChineseChar chineseChar = new ChineseChar(chr);
string t = chineseChar.Pinyins[0].ToString();
retValue += t.Substring(0, t.Length - 1);
}
else
{
retValue += chr.ToString();
}
}
catch (Exception e)
{
Console.WriteLine("全拼转化出错!" + e.Message);
return string.Empty;
}
}
return retValue;
}
/// <summary>
/// 汉字转首拼
/// </summary>
/// <param name="chinese">汉字</param>
/// <returns></returns>
public static string FirstPinYin(string chinese)
{
string retValue = string.Empty;
foreach (char chr in chinese)
{
try
{
if (ChineseChar.IsValidChar(chr))
{
ChineseChar chineseChar = new ChineseChar(chr);
string t = chineseChar.Pinyins[0].ToString();
retValue += t.Substring(0, 1);
}
else
{
retValue += chr.ToString();
}
}
catch (Exception e)
{
Console.WriteLine("首字母转化出错!" + e.Message);
return string.Empty;
}
}
return retValue;
}
#endregion
#region 判断多音字
/// <summary>
/// 判断汉字是否是多音字
/// </summary>
/// <param name="chr">单个汉字字符</param>
/// <returns></returns>
public static bool IsPolyphone(char chr)
{
if (ChineseChar.IsValidChar(chr))
{
ChineseChar chineseChar = new ChineseChar(chr);
return chineseChar.IsPolyphone;
}
else
{
return false;
}
}
/// <summary>
/// 判断汉字是否是多音字
/// </summary>
/// <param name="chinese">字符串形式的汉字,如果是多个,只判断首字</param>
/// <returns></returns>
public static bool IsPolyphone(string chinese)
{
if (ChineseChar.IsValidChar(chinese[0]))
{
ChineseChar chineseChar = new ChineseChar(chinese[0]);
return chineseChar.IsPolyphone;
}
else
{
return false;
}
}
#endregion
#region 获取拼音个数
/// <summary>
/// 取得汉字拼音个数
/// </summary>
/// <param name="chinese">汉字字符串,非汉字字符不算长度</param>
/// <returns></returns>
public static int PinYinCount(string chinese)
{
int retCount = 0;
foreach (char chr in chinese)
{
if (ChineseChar.IsValidChar(chr))
{
ChineseChar chineseChar = new ChineseChar(chr);
retCount += chineseChar.PinyinCount;
}
}
return retCount;
}
/// <summary>
/// 取得汉字拼音个数
/// </summary>
/// <param name="chr">单个汉字字符,非汉字返回0</param>
/// <returns></returns>
public static int PinYinCount(char chr)
{
if (ChineseChar.IsValidChar(chr))
{
ChineseChar chineseChar = new ChineseChar(chr);
return chineseChar.PinyinCount;
}
else
{
return 0;
}
}
#endregion
#region 获取笔画数
/// <summary>
/// 取得汉字笔画数
/// </summary>
/// <param name="chinese">汉字字符串,非汉字的字符不算笔画</param>
/// <returns></returns>
public static int StrokeNumber(string chinese)
{
int retCount = 0;
foreach (char chr in chinese)
{
if (ChineseChar.IsValidChar(chr))
{
ChineseChar chineseChar = new ChineseChar(chr);
retCount += chineseChar.StrokeNumber;
}
}
return retCount;
}
/// <summary>
/// 取得汉字笔画数
/// </summary>
/// <param name="chr">单个汉字字符,非汉字返回0</param>
/// <returns></returns>
public static int StrokeNumber(char chr)
{
if (ChineseChar.IsValidChar(chr))
{
ChineseChar chineseChar = new ChineseChar(chr);
return chineseChar.StrokeNumber;
}
else
{
return 0;
}
}
#endregion
}
更多: