多音字词典  duoyinzi_pinyin.txt

a#阿

ao#拗
ai#艾
bang#膀 磅 蚌
ba#扒车 扒拉 扒皮
bai#叔伯 百 柏杨
bao#剥皮 薄  暴 堡 曝
beng#蚌埠
bi#复辟  臂  秘鲁 泌阳
bing#屏弃 屏气 屏除 屏退 屏息
bian#扁 便
bo#薄荷 单薄 伯 伯爵  泊 波 柏 萝卜 孛
bu#卜
can#参
cang#藏
cen#参差
ceng#曾 噌
cha#差 刹那 宝刹 一刹 查
chai#公差 差役 专差 官差 听差 美差 办差 差事 差使 肥差 当差 钦差 苦差 出差
chan#颤 单于 禅
chang#长  厂
chao#朝 嘲
che#工尺 车
chen#称职 匀称 称心 相称 对称
cheng#称 乘 澄 噌吰 橙 秤
chu#畜
chui#椎心
chuan#传
chi#匙 尺 吃
chong#重庆 重重 虫
chou#臭
chuang#经幢
chuo#绰
ci#参差 伺  龟兹
cuan#攒钱 攒聚 攒动
cuo#撮儿 撮要 撮合
da#大 嗒
dao#叨
dai#大夫
dan#单 弹
dang#铛
de#的
di#堤 底 怎的 有的 目的 标的 打的 的确 的当 的士 地 提防
diao#蓝调 调调 音调 论调 格调 调令 低调 笔调 基调 强调 声调 滥调 老调 色调 单调 腔调 跑调 曲调 步调 语调 主调 情调
ding#丁
du#读 都 度
dou#全都 句读
duo#舵 测度 忖度 揣度 猜度
dun#粮囤 盾 顿 沌 敦
e#阿谀 阿胶 阿弥 恶心
er#儿
fan#番
feng#冯
fo#佛
fu#仿佛 果脯 罘
fou#否则 否定 应否 是否 与否 否决
ga#咖喱 伽马
gai#盖
gao#告
gang#扛鼎
ge#革 蛤蚧 文蛤 蛤蜊 咯
gei#给
geng#脖颈
gong#女红
gu#谷 中鹄  鼓
gui#龟 柜 硅
gua#呱
guan#纶巾 东莞
guang#广
ha#蛤
hai#还 嗨
hao#貉子 貉绒
hang#夯 总行 分行 支行 行业 排行 行情 央行 商行 外行 银行 商行 酒行 麻行 琴行 巷道
he#和 合 核
heng#道行
hu#鹄 水浒
hua#滑
huan#归还 放还 奉还
hui#会 浍河
hong#红 虹
huo#软和 热和 暖和
ji#病革 给养 自给 给水 薪给 给予 供给 稽 缉 藉 奇数 亟 诘屈 荠菜
jia#雪茄 伽 家 价 贾
jian#见
jiang#降
jiao#嚼舌 嚼子 细嚼 角 剿 饺 脚 蕉 矫
jie#解 慰藉 蕴藉 诘
jin#矜 劲
jing#颈 景
ju#咀嚼  居 桔 句
jun#均
juan#棚圈 圈养
jv#咀嚼 趑趄
jvan#猪圈 羊圈
jue#主角 角色 旦角 女角 丑角 角力 名角 配角 咀嚼 觉
jun#龟裂 俊
jvn#龟裂
ka#咖 卡 喀
kai#楷
kang#扛 扛活 扛大
ke#咳 壳
keng#吭
kuai#会计 财会 浍
kuo#括
la#癞痢 腊
lai#癞疮 癞子 癞蛤 癞皮
lao#积潦 络子 落枕 落价 粩 姥
le#乐 勒 了
lei#勒紧
lo#然咯
lou#佝偻
long#里弄 弄堂 泷
li#跞
liao#了解 了结  明了 了得 末了 未了 了如  了如指掌 潦
liang#靓 俩
liu#六
lu#碌 陆 露
luo#络 络 落 漯
lv#率 绿
lun#纶
mai#埋
man#埋怨 蔓
mai#脉
mang#氓 芒
mao#冒
meng#群氓 盟
mei#没
mo#埋没 隐没 脉脉 模 摩
mou#绸缪 牟
mi#秘 泌尿 分泌 谜
miu#谬 谬论 纰缪
mu#人模 字模 模板 模样 模具 装模 装模做样 模子
na#哪 娜 那
nan#南
ne#哪吒 呢
nong#弄
ni#毛呢 花呢 呢绒 线呢 呢料 呢子 呢喃 溺
niao#尿 鸟
nian#粘
niang#酿
niu#执拗 拗不
nu#努
nue#疟 疟疾
nuo#婀娜 袅娜
nv#女
nve#疟原 疟蚊
o#喔
pa#扒
pai#派 迫击 迫击炮
pao#刨 炮
pang#胖 膀胱 膀肿 磅礴
pi#辟 否极 臧否 龙陂 芘
pian#扁舟 便宜
piao#朴姓
ping#屏 苹
po#湖泊 血泊  迫 朴刀 坡 陂
pu#暴十 一曝十寒 里堡 十里堡 脯 朴 曝晒 瀑 埔
qi#期 其 泣
qiu#龟兹
qi#稽首 缉鞋 栖  奇 漆 齐
qia#卡脖 卡子 关卡 卡壳 哨卡 边卡 发卡
qiao#雀盲 雀子 地壳 甲壳 躯壳
qian#纤 乾
qiang#强
qie#茄 趔趄
qin#亲 沁
qing#干亲 亲家
qu#区 趣
quan#圈 券
que#雀
ruo#若
sai#塞
se#堵塞 搪塞 茅塞 闭塞 鼻塞 梗塞 阻塞 淤塞 拥塞 哽塞  色
sha#莎 刹车 急刹 急刹车 厦
shai#色子
shao#勺
shan#姓单 单县 杉
shang#衣裳
she#拾级 折本 射 蛇
shen#沙参 野参 参王 人参 红参 丹参 山参 海参 刺参 鹿参 什 身 沈
sheng#野乘 千乘 史乘  省 晟 盛
shi#钥匙 拾荒 捡拾 拾物 家什 什物 什锦 麻什  麦什 喀什 牛什  识 似的 食 石 氏 拾 适
shuai#表率 率性 率直 率真 粗率 率领 轻率 直率 草率 大率 坦率 衰
shuang#泷水
shu#属 数 术 熟
shui#游说
shuo#数见 数见不鲜  说
si#窥伺 伺弄 伺机 似 思
su#宿
sui#尿泡
ta#拓本 拓片 碑拓 疲沓 拖沓 杂沓 沓 塔 鸿塔
tang#汤
tao#陶
tan#弹性 弹力 反弹
ti#提 体
tiao#调
ting#町 听
tui#褪
tuo#拓
tun#囤 屯
wei#尾 蔚 圩
wu#无 可恶 交恶 好恶 厌恶 憎恶 嫌恶 痛恶 深恶
wan#藤蔓 枝蔓 瓜蔓 蔓儿  莞  万 百万 皖
wai#崴
xia#虾 吓 夏
xi#栖栖 系  蹊 洗 溪 戏
xiao#校 切削 削面 刀削 刮削
xian#纤细 光纤 纤巧 纤柔 纤小 纤维 纤瘦 纤纤 化纤 纤秀 棉纤 纤尘
xiang#降 巷
xie#解数 出血 采血 换血 血糊 尿血 淤血 放血 血晕 血淋 便血 吐血 咯血 叶韵 蝎 蝎子 邪
xiu#铜臭 乳臭 成宿 星宿
xin#馨 信 鸿信
xing#深省 省视 内省 不省人事 省悟 省察 行 旅行 例行 行程 行乐 龙行 人行 流行 先行 行星 品行  发行 行政 风行 龙行 龍行 麟行 荥
xu#牧畜 畜产 畜牧 畜养 吁 麦埂圩 浒
xue#削  血
xun#荨 寻
ya#琊
yao#钥匙 金钥 耀 曜
yan#咽  殷红 腌 烟
ye#液 抽咽 哽咽 咽炎 下咽 呜咽 幽咽 悲咽 叶  葉
yi#自艾 遗 屹
yin#殷
ying#荥经
yo#杭育
yong#涌
yu#余 呼吁 吁请 吁求 育 熨帖 熨烫 於
yuan#员
yun#熨
yue#约 乐音 器乐 乐律 乐章 音乐 乐理 民乐 乐队 声乐 奏乐 弦乐 乐坛 管乐 配乐 乐曲 乐谱  锁钥 密钥 乐团 乐器
za#绑扎 结扎 包扎 捆扎 咱家
zan#攒 咱
zang#宝藏 藏历 藏文 藏语 藏青 藏族 藏医  藏药 藏蓝 西藏
zai#牛仔 龟仔 龙仔 鼻仔 羊仔  仔仔 麻仔  麵包仔 麦旺仔 鸿仔 煲仔 福仔
ze#择
zeng#曾孙 曾祖
zong#综
zha#扎
zhai#宅
zhan#不粘 粘贴 粘连
zhao#朝朝 明朝 朝晖 朝夕 朝思 有朝 今朝 朝气 朝三 朝秦 朝霞 鹰爪 龙爪 魔爪 爪牙 失着 着数 龙爪槐
zhe#折 着
zhi#标识 吱 殖 枝
zhong#重 种
zhou#粥
zhu#属意 著
zhua#爪子
zhui#椎 隹
zhuo#执著 着装 着落 着意 着力 附着 着笔 胶着 着手 着重 穿着 衣着 执着 着眼 着墨 着实 沉着 着陆 着想 着色
zhuang#幢房 一幢 幢楼
zi#仔 兹
zu#足
zuo#柞

zui#咀

package com.renren.kylin.standard.util;

import java.io.*;
import java.util.HashMap;
import java.util.Map;

import com.google.common.io.Resources;
import org.apache.log4j.Logger;

import net.sourceforge.pinyin4j.PinyinHelper;
import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;

public class PinyinUtils {

private static final Logger logger = Logger.getLogger("devLog");

public static Map<String,String> dictionary = new HashMap<String,String>();

//加载多音字词典
    static{

BufferedReader br = null;
        try {
            String filePath = PinyinUtils.class.getClassLoader().getResource("duoyinzi_pinyin.txt").getPath();
            File file = new File(filePath);
            //InputStream in = (InputStream) Resources.getResource("test.txt").getContent();
            br = new BufferedReader(new InputStreamReader(new FileInputStream(file),"UTF-8"));

String line = null;
            while((line=br.readLine())!=null){

String[] arr = line.split("#");

if(StringUtils.isNotEmpty(arr[1])){
                    String[] sems = arr[1].split(" ");
                    for (String sem : sems) {

if(StringUtils.isNotEmpty(sem)){
                            dictionary.put(sem , arr[0]);
                        }
                    }
                }
            }

} catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }finally{
            if(br!=null){
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

}

public static String[] chineseToPinYin(char chineseCharacter) throws BadHanyuPinyinOutputFormatCombination{
        HanyuPinyinOutputFormat outputFormat = new HanyuPinyinOutputFormat();
        outputFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
        outputFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
        outputFormat.setVCharType(HanyuPinyinVCharType.WITH_V);

if(chineseCharacter>=32 && chineseCharacter<=125){    //ASCII >=33 ASCII<=125的直接返回 ,ASCII码表:http://www.asciitable.com/
            return new String[]{String.valueOf(chineseCharacter)};
        }

return PinyinHelper.toHanyuPinyinStringArray(chineseCharacter, outputFormat);
    }

/**
     * 获取汉字拼音的全拼
     * @param chineseCharacter
     * @return
     * @throws BadHanyuPinyinOutputFormatCombination
     */
    public static String chineseToPinYinF(String chineseCharacter) throws BadHanyuPinyinOutputFormatCombination{
        if(StringUtils.isEmpty(chineseCharacter)){
            return null;
        }

char[] chs = chineseCharacter.toCharArray();

StringBuilder result = new StringBuilder();

for(int i=0;i<chs.length;i++){
            String[] arr = chineseToPinYin(chs[i]);
            if(arr==null){
                result.append("");
            }else if(arr.length==1){
                result.append(arr[0]);
            }else if(arr[0].equals(arr[1])){
                result.append(arr[0]);
            }else{

String prim = chineseCharacter.substring(i, i+1);
//              System.out.println("prim="+prim+"**i="+i);

String lst = null,rst = null;

if(i<=chineseCharacter.length()-2){
                    rst = chineseCharacter.substring(i,i+2);
                }
                if(i>=1 && i+1<=chineseCharacter.length()){
                    lst = chineseCharacter.substring(i-1,i+1);
                }

//              System.out.println("lst="+lst+"**rst="+rst);

String answer = null;
                for (String py : arr) {

if(StringUtils.isEmpty(py)){
                        continue;
                    }

if((lst!=null && py.equals(dictionary.get(lst))) ||
                            (rst!=null && py.equals(dictionary.get(rst)))){
                        answer = py;
//                      System.out.println("get it,answer="+answer+",i="+i+"**break");
                        break;
                    }

if(py.equals(dictionary.get(prim))){
                        answer = py;
//                      System.out.println("get it,answer="+answer+",i="+i+"**prim="+prim);
                    }
                }
                if(answer!=null){
                    result.append(answer);
                }else{
                    logger.warn("no answer ch="+chs[i]);
                }
            }
        }

return result.toString().toLowerCase();
    }

public static String chineseToPinYinS(String chineseCharacter) throws BadHanyuPinyinOutputFormatCombination{
        if(StringUtils.isEmpty(chineseCharacter)){
            return null;
        }

char[] chs = chineseCharacter.toCharArray();

StringBuilder result = new StringBuilder();

for(int i=0;i<chs.length;i++){
            String[] arr = chineseToPinYin(chs[i]);
            if(arr==null){
                result.append("");
            }else if(arr.length==1){
                result.append(arr[0].charAt(0));
            }else if(arr[0].equals(arr[1])){
                result.append(arr[0].charAt(0));
            }else{

String prim = chineseCharacter.substring(i, i+1);
//              System.out.println("prim="+prim+"**i="+i);

String lst = null,rst = null;

if(i<=chineseCharacter.length()-2){
                    rst = chineseCharacter.substring(i,i+2);
                }
                if(i>=1 && i+1<=chineseCharacter.length()){
                    lst = chineseCharacter.substring(i-1,i+1);
                }

//              System.out.println("lst="+lst+"**rst="+rst);

String answer = null;
                for (String py : arr) {

if(StringUtils.isEmpty(py)){
                        continue;
                    }

if((lst!=null && py.equals(dictionary.get(lst))) ||
                            (rst!=null && py.equals(dictionary.get(rst)))){
                        answer = py;
//                      System.out.println("get it,answer="+answer+",i="+i+"**break");
                        break;
                    }

if(py.equals(dictionary.get(prim))){
                        answer = py;
//                      System.out.println("get it,answer="+answer+",i="+i+"**prim="+prim);
                    }
                }
                if(answer!=null){
                    result.append(answer.charAt(0));
                }else{
                    logger.warn("no answer ch="+chs[i]);
                }
            }
        }
        return Character.toUpperCase(result.toString().toCharArray()[0])+"";
    }

public static void main(String[] args) {

try {

//          String str = "长沙绿爱旅行";
            String str = "长沙";

System.out.println(str+" pyf="+PinyinUtils.chineseToPinYinF(str));
            System.out.println(str + " pys="+PinyinUtils.chineseToPinYinS(str));

} catch (BadHanyuPinyinOutputFormatCombination e) {
            e.printStackTrace();
        }
    }

}

根据城市首字母进行分类,区分多音字,获取城市首字母相关推荐

  1. php判断汉子首字母的函数,php获取汉字首字母的函数

    本文介绍用php实现汉字转化为首字母的方法,主要功能是:功能明确,易于修改维护和扩展: 英文的字串:不变返回(包括数字):中文字符串:返回拼音首字符: 中英混合串: 返回拼音首字符和英文. 网上的方法 ...

  2. php根据汉字首字母分组,利用PHP获取汉字首字母并且分组排序详解

    前言 本文主要给大家介绍了关于PHP获取汉字首字母并分组排序的相关内容,因经常我们在做项目的时候,会有按首字母排序的需求 比如: 美团的城市选择 http://www.meituan.com/inde ...

  3. uni-app - 获取汉字拼音首字母(根据中文获取拼音首字母)

    前言

  4. js 获取汉字首字母和汉字转拼音

    获取汉字首字母 汉字转拼音 获取汉字首字母 <!DOCTYPE html> <html lang="en"><head><meta cha ...

  5. 手淘卡首屏工具|2023淘宝卡首屏API接口

    手淘卡首屏工具介绍 使用关键词+商品URL生成卡首屏二维码,通过二维码将指定的宝贝通过关键词搜索显示在手淘首屏,(注:卡开车中的商品会显示为"直通车",直播中的宝贝会显示为&quo ...

  6. asp.net 获取汉字字符串的拼音首字母,含多音字

    需求:在很多时候数据查询的时候,我们希望输入某个人姓名的拼音首字母进行查询,例如"潘长江",输入"pcj",就能搜索潘长江相关信息. 实现: #region 获 ...

  7. Qt中实现获取中文首字母(GB2312 和 unicode以及调用Unihan实现全汉字拼音转换,支持多音字和生僻字等)和中英文数字排序功能

    Qt5中可以通过qSort接口,结合QLocale类和QCollator类,可以对中文,英文,数字进行排序,但默认排序顺序为数字.英文.中文,但如果需要中英文混合排序的话,需要另外封装方法实现. 这种 ...

  8. php获取中文城市首字母排序,PHP实现获取第一个中文首字母并进行排序的方法

    PHP实现获取第一个中文首字母并进行排序的方法 发布于 2017-08-10 07:47:28 | 108 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hyper ...

  9. C#获取汉字首字母,多音拼音

    前面写的几篇都是没有完善的,目前修改这个是最好的 ChineseChar类可在这里找到DLL http://download.csdn.net/detail/qq873113580/6033615 全 ...

  10. 获取名字首字母,js

    获取名字首字母用来做默认头像,不多说,直接上代码. formate.js var formate = (function () {var Formate = function (ops) {this. ...

最新文章

  1. PTA基础编程题目集-7-4 BCD解密
  2. TCP/UDP编程中的问题汇总
  3. C/Cpp / 条件编译
  4. 【解题报告】Leecode 423. 从英文中重建数字——Leecode每日一题系列
  5. 听说现在都考这些React面试题
  6. DM达梦创建表空间用户
  7. java 转dwg转图片_dwg转pdf要怎么转换
  8. 分享:从功能增强说起
  9. 三菱GXWorks2 变换梯形图
  10. 医院病历html模板,三甲医院电子病历模板参考
  11. 记一次刷路由器固件的经历
  12. 新浪邮箱注册,email注册申请
  13. 古代诗词哲理名句赏析
  14. Iron WebScraper 网络爬虫
  15. GPT专业应用:如何让GPT策划方案
  16. 音视频学习之ffmpeg常用基础命令整理
  17. ExtJS初级教程之ExtJS Tree(三)
  18. EV2200 使用教程
  19. Gate 7.2的安装与部署(一)
  20. 微服务框架dubbo

热门文章

  1. Mysql读写分离的四种方案
  2. 企业微信-通讯录管理-成员管理以及部门管理
  3. cs1.6修改服务器参数设置,cs1.6比赛服务器设置参数
  4. 鸿蒙应用开发 | 时间选择器(TimePicker)的功能和用法
  5. Android闹钟TimePicker,android – TimePicker getHours(),API 15中的getMinutes
  6. SVM -支持向量机原理详解与实践之四
  7. 华为研发工程师笔试编程题
  8. 给摩托罗拉C1200数字对讲机写频
  9. linux编译gdal geos,GDAL编译支持GEOS
  10. 不限速的免费下载神器,牛逼!