C# Demo--汉字转拼音

news2024/11/25 20:53:48

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.coloradmin.cn/o/1288583.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【JavaScript手撕代码】日期格式化 yyyy-mm-dd hh:mm:ss

一行代码&#xff1a; function formatTime() {return new Date().toLocaleString().replace(/\//g, -) }

中小企业:理解CRM与ERP系统的区别与联系,提升业务效能

许多中小型企业正面临着客户递增&#xff0c;市场营销&#xff0c;货存流通等递增数据整合的困扰。这个时候需要根据自身企业的实际情况去选择适合自己的系统。那么&#xff0c;中小企业使用CRM系统和erp系统的区别是什么&#xff1f; 一、含义和目标区别 CRM系统旨在帮助企业…

【若依系列】1.项目修改成自己包名并启动服务

项目下载地址&#xff1a; 分离版本 https://gitee.com/y_project/RuoYi-Vue 修改工具下载 https://gitee.com/lpf_project/common-tools 相关截图&#xff1a; 1.项目结构&#xff1a; 2.修改包名工具&#xff1a; 工具截图&#xff0c;根据对应提示自定义修改即可&#x…

岳阳楼3D模型纹理贴图

在线工具推荐&#xff1a; 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 岳阳楼&#xff0c;位于湖南省岳阳市岳阳楼区洞庭北路&#xff0c;地…

云轴科技ZStack助力彬长矿业建设智能矿山

陕西彬长矿业集团有限公司&#xff08;简称彬长矿业&#xff09;选择云轴科技ZStack智能矿山云解决方案建设云基础设施&#xff1a;ZStackCube超融合一体机部署在西咸云基地机房构建私有云资源池&#xff0c;ZStackCMP多云管理平台对西咸云基地机房以及各矿井生产服务中心资源进…

写class的奇淫巧技-数组遍历

class想提供类似数组的能力 可以自定义 Symbol.iterator class A {*[ Symbol.iterator ]() {yield this.x;yield this.y;yield this.z;} }如&#xff1a;

程序员如何开发高级python爬虫?

之前我有写过一篇“高级爬虫和低级爬虫的区别”的文章&#xff0c;我们知道它并非爬虫领域中专用术语。只是根据爬虫的复杂性来断定是否是高级爬虫。以我个人理解&#xff1a;高级爬虫是可能具有更复杂的功能和更高的灵活性的爬虫。下面我们围绕高级爬虫来了解下有趣的事情。 低…

网络广播音柱在多场景中的应用

网络广播音柱在多场景中的应用 首先&#xff0c;网络音响在家庭娱乐方面有着突出的表现。在家里&#xff0c;我们可以通过它享受高质量的音乐、电影和游戏。无论是听悠扬的音乐旋律&#xff0c;还是看电影时震撼的音效&#xff0c;它都能提供逼真的沉浸式音效。此外&#xff0…

写实3D游戏模型纹理贴图设置

在线工具推荐&#xff1a; 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 当谈到游戏角色的3D模型风格时&#xff0c;有几种不同的风格&#xf…

Redis(三):常见数据类型:List、Set、Zset

List 列表 列表类型是用来存储多个有序的字符串&#xff0c; 如图&#xff1a; a、b、c、d、e 五个元素从左到右组成 了⼀个有序的列表&#xff0c;列表中的每个字符串称为元素&#xff08;element&#xff09;&#xff0c;⼀个列表最多可以存储个元素。在 Redis 中&#xff…

剪刀石头布游戏

csdn问答社区的一道题目&#xff0c;题目描述都像一篇论文了&#xff0c;界面设置不敢恭维&#xff0c;不过也算是可练手工程。 (笔记模板由python脚本于2023年12月05日 22:15:03创建&#xff0c;本篇笔记适合熟悉Python字典、列表、字符串的coder翻阅) 【学习的细节是欢悦的历…

军大衣方歇 东北大花袄正当时

聊起最近军大衣和各式棉服的销量&#xff0c;丽亮服饰的陈先生正忙于打包&#xff0c;他说现在订购的军大衣最早也得20天后才能到货&#xff0c;除了零散的几件&#xff0c;市面基本都处于断货状态。 做了十多年服装生意&#xff0c;陈先生也没想到军大衣会从自己的父辈&#x…

【Vue】element组件不显示问题

使用element组件但不显示 不显示的原因&#xff1a;&#xff08;未引入element-ui&#xff09; 首先在控制台输入 npm i element-ui 进行安装 安装完之后&#xff0c;再去main.js配置element-ui组件库 import ElementUI from element-ui import element-ui/lib/theme-chal…

MYSQL数据库中运行SQL文件报错

报错显示 当使用mysql数据库运行SQL文件报错时 [Err] 1273 - Unknown collation: utf8mb4_0900_ai_ci 报错原因 版本高低问题&#xff0c;一个是5.7版本&#xff0c;一个是8.0版本生成转储文件的数据库版本为8.0,要导入sql文件的数据库版本为5.7,因为是高版本导入到低版本&a…

.NET Core 依赖注入 Microsoft.Extensions.DependencyInjection(未完待续)

文章目录 前言什么是依赖注入C# 使用依赖注入框架介绍 Microsoft.Extensions.DependencyInjectionNuget安装简单单例使用打印结果 暂时结束 前言 依赖注入是一个非常重要的编程思想&#xff0c;就和面向过程和面向对象一样&#xff0c;IOC和控制反转是一种解耦的编程思想。 什…

小满CRM与畅捷通T+系统数据集成方案分享

小满CRM与畅捷通T系统数据集成方案分享 在当前数字化浪潮的推动下&#xff0c;越来越多的企业选择使用各种信息化系统来提高工作效率和管理水平。其中&#xff0c;小满CRM和畅捷通T系统成为了广受企业欢迎的两个主流系统。然而&#xff0c;企业在使用这两个系统的过程中&#…

【数据分享】1990-2022年我国省市县三级的各类土地覆盖面积

土地覆盖数据是我们在各项研究中经常使用的数据。土地覆盖数据可以帮助我们确定哪儿是建设用地&#xff0c;哪儿是水域&#xff0c;哪儿是农田等&#xff01;我们之前分享了武汉大学杨杰和黄昕教授发布的1990-2022年中国30米年度土地覆盖栅格数据&#xff08;可查看之前的文章获…

在微信小程序中如何改变默认打开的页面

在微信小程序中&#xff0c;在我们编写页面的时候&#xff0c;可能会在重新渲染的时候导致页面跳转到默认打开的页面上&#xff0c;为了提升用户的一个体验&#xff0c;我们可以设置一些内容来修改小程序默认打开的页面&#xff0c;提升开发者的开发体验。 当我们打开一个微信…

CentOS中安装数据库

1.下载 网址&#xff1a;https://dev.mysql.com/downloads/mysql/ 按如图选择&#xff0c;然后点击Download 这里它让我们登录&#xff0c;我们直接选择不登录&#xff0c;直接下载 2.关闭防火墙 systemctl disable firewalld3.正式安装 切换到/usr/local下 cd /usr/l…

扰动观测器(Disturbance observer)

干扰观测器是将外部干扰以及模型参数变化造成的实际对象与名义模型之间的差异等效到控制输入端&#xff0c;即观测出等效干扰。并在控制中引入等效的补偿&#xff0c;实现对干扰的完全控制。 参考文献&#xff1a; 聊聊控制领域的干扰观测器(DOB) - 知乎1. 简介1987 年日本学者…