栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

C#汉字转拼音

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C#汉字转拼音

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 汉子转拼音
    /// 
    /// 汉字转全拼
    /// 
    /// 汉字
    /// 
    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;
    }
    /// 
    /// 汉字转首拼
    /// 
    /// 汉字
    /// 
    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 判断多音字
    /// 
    /// 判断汉字是否是多音字
    /// 
    /// 单个汉字字符
    /// 
    public static bool IsPolyphone(char chr)
    {
        if (ChineseChar.IsValidChar(chr))
        {
            ChineseChar chineseChar = new ChineseChar(chr);
            return chineseChar.IsPolyphone;
        }
        else
        {
            return false;
        }
    }
    /// 
    /// 判断汉字是否是多音字
    /// 
    /// 字符串形式的汉字,如果是多个,只判断首字
    /// 
    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 获取拼音个数
    /// 
    /// 取得汉字拼音个数
    /// 
    /// 汉字字符串,非汉字字符不算长度
    /// 
    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;
    }
    /// 
    /// 取得汉字拼音个数
    /// 
    /// 单个汉字字符,非汉字返回0
    /// 
    public static int PinYinCount(char chr)
    {
        if (ChineseChar.IsValidChar(chr))
        {
            ChineseChar chineseChar = new ChineseChar(chr);
            return chineseChar.PinyinCount;
        }
        else
        {
            return 0;
        }
    }
    #endregion

    #region 获取笔画数
    /// 
    /// 取得汉字笔画数
    /// 
    /// 汉字字符串,非汉字的字符不算笔画
    /// 
    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;
    }
    /// 
    /// 取得汉字笔画数
    /// 
    /// 单个汉字字符,非汉字返回0
    /// 
    public static int StrokeNumber(char chr)
    {
        if (ChineseChar.IsValidChar(chr))
        {
            ChineseChar chineseChar = new ChineseChar(chr);
            return chineseChar.StrokeNumber;
        }
        else
        {
            return 0;
        }
    }
    #endregion
}

更多:

C# 中文简体中文繁体转换_ChineseConverter C# 正则表达式使用_C# Regex使用整理 C# 正则使用_正则表达式使用整理(一) Kestrel简介_Kestrel Web 服务器简介
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/909882.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号