C# Demo--汉字转拼音

1.Nuget安装NPOI及Pinyin4net

2.Demo 代码部分

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using NPOI.SS.UserModel;
using NPOI.HSSF.UserModel;
using NPOI.XSSF.UserModel;
using System.IO;
using System.Text.RegularExpressions;
using NPOI.Util;
using NPOI.SS.Util;
using NPOI.HSSF.Util;
using Pinyin4net.Format;
using Pinyin4net;

namespace ConsoleApp5
{
    class Program
    {
        static void Main(string[] args)
        {
            // 使用示例
            string input = "中国";
            string pinyin = ConvertToPinyin(input);
            pinyin = ConvertToPinyin("升温");
            pinyin = ConvertToPinyin("降温");
            Console.WriteLine(pinyin);  // 输出: "zhong guo"
            Console.ReadKey();
        }

        // 汉字转拼音
        public static string ConvertToPinyin(string input)
        {
            // 创建一个工作簿
            IWorkbook workbook = new HSSFWorkbook();

            // 创建一个工作表
            ISheet sheet = workbook.CreateSheet("Sheet1");

            // 创建一行
            IRow row = sheet.CreateRow(0);

            // 创建一个单元格
            ICell cell = row.CreateCell(0);

            // 将汉字写入单元格
            cell.SetCellValue(input);

            // 设置单元格格式为文本
            IDataFormat format = workbook.CreateDataFormat();
            cell.CellStyle.DataFormat = format.GetFormat("@");

            // 获取单元格的值
            string value = cell.StringCellValue;

            // 创建一个汉语拼音输出格式实例
            HanyuPinyinOutputFormat pinyinFormat = new HanyuPinyinOutputFormat();
            pinyinFormat.ToneType = HanyuPinyinToneType.WITHOUT_TONE;

            // 将汉字转换为拼音
            string[] results = new string[value.Length];
            for (int i = 0; i < value.Length; i++)
            {
                // 获取汉字的拼音
                string[] pinyinArray = PinyinHelper.ToHanyuPinyinStringArray(value[i], pinyinFormat);
                // 创建一个汉语拼音输出格式实例,指定不带声调
                //HanyuPinyinOutputFormat pinyinFormat = new HanyuPinyinOutputFormat();
                //pinyinFormat.ToneType = HanyuPinyinToneType.WITHOUT_TONE;

                // 将汉字转换为拼音
                //string[] pinyinArray = PinyinHelper.ToHanyuPinyinStringArray('中', pinyinFormat);

                // 如果这个字符不是汉字,则直接使用它的原始值
                if (pinyinArray == null || pinyinArray.Length == 0)
                {
                    results[i] = value[i].ToString();
                }
                else
                {
                    // 将拼音连接起来
                    results[i] = string.Join(" ", pinyinArray);
                }
            }

            // 关闭工作簿
            workbook.Close();

            // 将所有拼音连接起来
            string pinyin = string.Join(" ", results);

            return pinyin;
        }
    }
}

3.输出部分

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值