C# Demo--汉字转拼音

2023-12-13 03:58:29

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.输出部分

文章来源:https://blog.csdn.net/BlueCapt/article/details/134811855
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。