当前位置: 首页 > article >正文

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


http://www.kler.cn/a/159409.html

相关文章:

  • 坚果云·无法连接服务器(无法同步)
  • CC6学习记录
  • 【大数据】MySQL与Elasticsearch的对比分析:如何选择适合的查询解决方案
  • WPF中如何使用区域导航
  • element plus的表格内容自动滚动
  • Java中 LinkedList<>,ArrayDeque<>的区别 || Queue和Deque的区别
  • Java中常用的垃圾回收器
  • 软件工程 复习笔记
  • Vue混淆与还原
  • python处理的例子
  • jupyter notebook搭建
  • Oracle初始化参数文件pfile和spfile
  • MySQL 性能优化
  • 自定义 按钮间,按钮边框滑动。
  • 第一篇:MongoDB的安装、启动、关闭、链接shell
  • 蓝桥杯每日一题2023.12.5
  • C盘爆满,python pip无法安装应用
  • Adobe Acrobat DC 将PDF转曲步骤
  • 【Docker实操】创建一个Node服务
  • 大宽服务器:一场关于未来、关于梦想的科技革命
  • 【Flink基础】-- 延迟数据的处理
  • 大数据Doris(三十一):Doris简单查询
  • ArkUI组件--Text组件
  • Spingboot 之spring-boot-starter-parent与spring-boot-dependencies区分
  • 网页产品经理常用的ChatGPT通用提示词模板
  • 配置自动化部署Jenkins和Gitea