首页 > 代码库 > 步步为营-61-拼音组件

步步为营-61-拼音组件

 

说明:使用微软提供的拼音组件ChnCharInfo.dll

1 方法一

技术分享
            //01 构建拼音对象
            ChineseChar cc = new ChineseChar(txtHanZi.Text[0]);
            //02 创建拼音字符
            string[] pinyin = cc.Pinyins.ToArray();
            foreach (string str in pinyin)
            {
                txtPinYin.Text += str + " ";
            } 
View Code

技术分享

2 方法二

技术分享
  #region 方法二 获得一个字符串的的首字母
            //01 获得待转化字符串
            string str = txtHanZi.Text.ToString();
            //02 定义一个新的拼音首字母缩写字符串
            string newStr = string.Empty;
            //02 遍历字符串
            foreach (char item in str)
            {
               ChineseChar cc = new ChineseChar( item);
                //获得拼音的多音字的第一个音节
                string firstYIn = cc.Pinyins[0];
                //获取第一个首字母
                string firstChar = firstYIn[0].ToString();
                newStr += firstChar;
            }
            //03 设置txtPinYin显示效果
            txtPinYin.Text = newStr;

            #endregion
View Code

技术分享
3 方法三

技术分享
  #region 方法三 将其进行封装
            txtPinYin.Text = CaterCommon.PinYinHelper.GetInitials(txtHanZi.Text);
            #endregion
View Code
技术分享
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.International.Converters.PinYinConverter;

namespace CaterCommon
{
  public partial class PinYinHelper
    {
        public static string  GetInitials(string str)
        {
            string initialsStr = string.Empty;
            foreach (char item in str)
            {
                ChineseChar cc = new ChineseChar( item);
                initialsStr += cc.Pinyins[0][0].ToString();
            }
            return initialsStr;
        }
    }
}
View Code

效果和方法二一样

步步为营-61-拼音组件