通过查找汉字拼音库实现实时汉字转拼音的功能。

实现

  • 加载汉字拼音对照文件pinyin.txt(4万+汉字拼音对照)到QMap容器。
  • 遍历QMap容器的汉字从而找到对应的拼音,如找不到该汉字将原样输出。
  • 部分pinyin.txt内容:(https://github.com/mozillazg/pinyin-data提供汉字拼音源强力支持)
líng,yuán,xīng 〇
qiū 㐀
tiàn 㐁
kuà 㐄
wǔ 㐅
yǐn 㐆
yí 㐌
xié 㐖
chóu 㐜
nuò 㐡
dān,qiú 㐤
xù 㐨
xíng 㐩
xiōng 㐫
liú 㐬
lǐn 㐭

核心代码

class Hanzi2Pinyin
{public:static QString find(const QString &hanzi){static QMap<QString, QStringList> map = loadHanziTable(":/pinyin.txt");QString output;QStringList stringList = hanzi.split("");/* 遍历查找汉字-拼音对照表的内容并将汉字替换为拼音 */for (const QString &str : stringList) {if (map.contains(str))output += map[str].first();elseoutput += str;}return output;}private:/* 加载汉字对照表 */static QMap<QString, QStringList> loadHanziTable(const QString &fileName){QMap<QString, QStringList> map;QFile file(fileName);if (!file.open(QFile::ReadOnly | QFile::Text)) {qDebug("File: '%s' open failed!", file.fileName().toStdString().c_str());return map;}/* 读取汉字对照表文件并转换为QMap存储 */while(!file.atEnd()) {QString content = QString::fromUtf8(file.readLine());map[content.split(" ").last().trimmed()] = content.split(" ").first().split(",");}file.close();return map;}
};

源码地址

  欢迎大家一起协作完善。
https://github.com/aeagean/Hanzi2Pinyin

发布 | 汉字转拼音工具相关推荐

  1. Android 汉字转拼音工具

    Android 汉字转拼音工具 前言 工具 使用 前言 没有.. 工具 pinyin4j - 下载1 pinyin4j - 下载2 使用 import net.sourceforge.pinyin4j ...

  2. Java汉字转换拼音工具类

    1. 使用pinyin4j 1.1 引入相关maven依赖 <dependency><groupId>com.belerweb</groupId><artif ...

  3. 汉字转拼音(工具类)

    2019独角兽企业重金招聘Python工程师标准>>> package com.qst.tesc.course.web.rest.util; import java.io.Unsup ...

  4. Java汉字转为拼音工具类

    依赖文件 <!-- https://mvnrepository.com/artifact/com.belerweb/pinyin4j --><dependency><gr ...

  5. 汉字转拼音工具类,依赖Pinyin4J

    汉字转拼音工具类,依赖Pinyin4J Maven 坐标 <dependency><groupId>com.belerweb</groupId><artifa ...

  6. java汉字转拼音工具类源代码

    原文:java汉字转拼音工具类源代码 源代码下载地址:http://www.zuidaima.com/share/1550463387880448.htm 汉字转拼音 Pinyin pinyin = ...

  7. 能处理姓氏异读的汉字转拼音工具:hanz2piny

    hanz2piny 是一个汉字转拼音的工具,它高效.易用.无需单独数据文件,非常适合用于制作密码攻击的帐号字典,因为 hanz2piny 能处理姓氏异读. https://github.com/yan ...

  8. 汉字转拼音工具JPinyin的介绍和使用示例

    2019独角兽企业重金招聘Python工程师标准>>> 汉字转拼音的开源工具类包,已经出现过好几个,比如:Pinyin4J.Jpinyin等.本文主要结合JPinyin汉字转拼音的J ...

  9. java 汉字转拼音工具_java汉字转拼音工具类

    public classPinYinUtils {public staticHanyuPinyinOutputFormat PINYIN_FORMAT;static{ PINYIN_FORMAT= n ...

最新文章

  1. 单元测试 applicationinfomanager bean无法注入_你真的会用Spring吗?如何在单例Bean中注入原型Bean...
  2. Ionic(ionicframework)一款接近原生的Html5移动App开发框架 中文网
  3. 从决策树学习谈到贝叶斯分类算法
  4. PostgreSQL 10 自定义并行计算聚合函数的原理与实践
  5. Python继承范例
  6. Android Tween动画之RotateAnimation实现图片不停旋转
  7. 在udp聊天器里如何给飞秋发消息
  8. HTML5 video 视频标签使用介绍
  9. 数学物理方法 数学物理方程
  10. Linux 脚本修改ps1,Ubuntu修改命令提示符PS1教程(非常详细)
  11. Python-illegal multibyte sequence
  12. vue3组件之间通信(一)——父传子属性和方法
  13. scipy库 signal 导入_Python scipy.signal方法代码示例
  14. 配置CLion clang-format保存时自动格式化
  15. java applet 一个简单的例子(applet+html)
  16. 4.2 Ansible中的常用模块
  17. 联想ERP项目实施案例分析(8) 上线支持与项目总结
  18. 旧书交易系统——第一次报告
  19. Java实现 LeetCode 558 四叉树交集(四叉树,第一次遇到,研究了半天)
  20. Java中夏令时问题

热门文章

  1. HDU 6304 Chiaki Sequence Revisited(找规律)
  2. 穆利堂[推荐]河南郑州房地产CRM管理系统软件整体解决方案.穆穆-movno1
  3. 独立显卡跟集成显卡有什么差别?
  4. 【ActiveMQ】JMS中间件ActiveMQ详解
  5. 小学生学Arduino------制作智能灯
  6. java随机获取字母,Java程序获取随机字母
  7. composer 自定安装包路径
  8. 对比MIUI7和Flyme4.5 期待神秘的Flyme5
  9. 开课吧T31项目第6天
  10. caffe 提取LMDB时可能出现的错误