文档章节

使用pinyin4j将汉字转换成拼音

DENGJM
 DENGJM
发布于 2015/08/26 14:23
字数 150
阅读 130
收藏 6
点赞 0
评论 0

Maven引入依赖:

<dependency>
  <groupId>com.belerweb</groupId>
  <artifactId>pinyin4j</artifactId>
  <version>2.5.0</version>
</dependency>

自己封装了一个工具类:

package com.ylmob.yunpay.util.pinyin;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

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

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * @author DJM
 */
public class HanyuPinyinUtil {
    
    Logger logger = LoggerFactory.getLogger(HanyuPinyinUtil.class);
    
    private HanyuPinyinUtil(){
    }
    
    public static HanyuPinyinUtil getInstance(){
        return new HanyuPinyinUtil();
    }
    
    public String toPinyin(String chineseCharacter){
        String pinyin = "";
        for(Character chara: chineseCharacter.toCharArray()){
            logger.info("The character is {}.", chara);
            Pattern pt = Pattern.compile("[\\u4e00-\\u9fa5]+");
            Matcher mt = pt.matcher(chara.toString());
            if(mt.matches()){
                logger.info("The character {} is match.", chara);
                HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
                format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
                String[] hyArr = null;
                try {
                    hyArr = PinyinHelper.toHanyuPinyinStringArray(chara, format);
                } catch (BadHanyuPinyinOutputFormatCombination e) {
                    e.printStackTrace();
                }
                pinyin = pinyin.concat(hyArr[0]);
            }else{
                //过滤空白字符
                Pattern blankPt = Pattern.compile("\\s+"); 
                Matcher blankMt = blankPt.matcher(chara.toString());
                if(!blankMt.matches()){
                    pinyin = pinyin.concat(chara.toString());
                }
            }
        }
        return pinyin;
    }
    
}


© 著作权归作者所有

共有 人打赏支持
DENGJM
粉丝 8
博文 33
码字总数 29088
作品 0
杭州
后端工程师
Pinyin4j 的基本用法

1. 简单介绍 有时候,需要将汉字编程对应的拼音,以方便数据的处理。比如在Android手机应用 的开发上,要查询联系人的姓名,通常都是用拼音进行查询的。比如要查询“曹孟德”,就可以输入“c...

鉴客 ⋅ 2011/09/11 ⋅ 8

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

汉字转拼音的开源工具类包,已经出现过好几个,比如:Pinyin4J、Jpinyin等。本文主要结合JPinyin汉字转拼音的Java开源类库,给出相关的介绍和使用示例。 Jpinyin介绍 JPinyin是一个汉字转拼音...

王孟君 ⋅ 2016/11/13 ⋅ 5

包含多音字的汉字字符串如何通过pinyin4J转换成拼音串

看了下pinyin4j实现了单个汉字转换成拼音的功能,如果我一次性输入多个包含多音字的汉字,如"大绿胖姥”,通过pinyin4J循环处理每个汉字字符,可得(da dai) (lv lu) (pang pan) (lao mu),那...

不懂就要问啊 ⋅ 2015/04/27 ⋅ 3

Android 汉语转拼音

有很多时候我们需要将汉字转换为拼音,例如手机中的联系人排序、在12306买车票时输入SZshenzhen就会提示深圳。 Android提供了汉字转拼音的类HanziToPinyin.java,据说这个类是在联系人app下的...

麦兜LK ⋅ 2014/11/03 ⋅ 0

汉字转拼音的Java类库--JPinyin

JPinyin是一个汉字转拼音的Java开源类库,在PinYin4j的功能基础上做了一些改进。 【JPinyin主要特性】 1、准确、完善的字库; Unicode编码从4E00-9FA5范围及3007(〇)的20903个汉字中,JPi...

Jayer ⋅ 2013/05/15 ⋅ 11

汉字转拼音

1、目前在百度或谷歌上搜索“java汉字转拼音”,主要有以下三种: 1)piny4j:搜索结果介绍文章最多的,然而此类库对生僻字支持不好,转换时会报空指针(java.lang.NullPointerException)错...

小谷xg ⋅ 2017/10/23 ⋅ 0

一个汉字转拼音的插件(pinyin4j)

今天看到一个拼音插件,输入汉字后会自动转换为拼音或者每个字的首字母,在做有些项目开发时也有点用 pinyin4j提供了汉语转拼音的一个开源库, 支持多种拼音系统:汉语拼音、 通用拼音 、威氏...

长平狐 ⋅ 2012/10/09 ⋅ 1

Pinyin4Net —— .NET 的汉字拼音转换工具库

Pinyin4Net 是一个.net下的汉字/拼音转换工具库,借用了Pinyin4J 的拼音数据库。现支持 .net2.0, .net4.0, .netcore1.1(standaedlib1.6),针对三个.net版本分别有3个分支。...

达尔文 ⋅ 2016/12/27 ⋅ 0

java将汉语拼音转为汉字的算法,类似输入法

使用pinyin4j可以很好的将汉字转为拼音,但是将拼音转为汉字目前还算是空白,其实目前的输入法查词的实现,包括搜索引擎的搜索,都包含该技术的实现,那么,到底该怎样实现这样一个复杂的匹配...

battier ⋅ 2011/07/25 ⋅ 6

搜索引擎关键字智能提示的一种实现

搜索引擎关键字智能提示的一种实现 美团技术团队 问题背景 搜索关键字智能提示是一个搜索应用的标配,主要作用是避免用户输入错误的搜索词,并将用户引导到相应的关键词上,以提升用户搜索体...

宇智波带土 ⋅ 2014/06/06 ⋅ 1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

mysql in action / alter table

change character set ALTER SCHEMA `employees` DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci ;ALTER TABLE `employees`.`t2` CHARACTER SET = utf8mb4 , COLLAT......

qwfys ⋅ 今天 ⋅ 0

Java 开发者不容错过的 12 种高效工具

Java 开发者常常都会想办法如何更快地编写 Java 代码,让编程变得更加轻松。目前,市面上涌现出越来越多的高效编程工具。所以,以下总结了一系列工具列表,其中包含了大多数开发人员已经使用...

jason_kiss ⋅ 昨天 ⋅ 0

Linux下php访问远程ms sqlserver

1、安装freetds(略,安装在/opt/local/freetds 下) 2、cd /path/to/php-5.6.36/ 进入PHP源码目录 3、cd ext/mssql进入MSSQL模块源码目录 4、/opt/php/bin/phpize生成编译配置文件 5、 . ./...

wangxuwei ⋅ 昨天 ⋅ 0

如何成为技术专家

文章来源于 -- 时间的朋友 拥有良好的心态。首先要有空杯心态,用欣赏的眼光发现并学习别人的长处,包括但不限于工具的使用,工作方法,解决问题以及规划未来的能力等。向别人学习的同时要注...

长安一梦 ⋅ 昨天 ⋅ 0

Linux vmstat命令实战详解

vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令...

刘祖鹏 ⋅ 昨天 ⋅ 0

MySQL

查看表相关命令 - 查看表结构    desc 表名- 查看生成表的SQL    show create table 表名- 查看索引    show index from  表名 使用索引和不使用索引 由于索引是专门用于加...

stars永恒 ⋅ 昨天 ⋅ 0

easyui学习笔记

EasyUI常用控件禁用方法 combobox $("#id").combobox({ disabled: true }); ----- $("#id").combobox({ disabled: false}); validatebox $("#id").attr("readonly", true); ----- $("#id").r......

miaojiangmin ⋅ 昨天 ⋅ 0

金山WPS发布了Linux WPS Office

导读 近日,金山WPS发布了Linux WPS Office中文社区版新版本,支持大部分主流Linux系统,功能更加完善,兼容性、稳定性大幅度提升。本次更新WPS将首次在Linux提供专业办公文件云存储服务,实...

问题终结者 ⋅ 昨天 ⋅ 0

springboot2输出metrics到influxdb

序 本文主要研究一下如何将springboot2的metrics输出到influxdb maven <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-bo......

go4it ⋅ 昨天 ⋅ 0

微信小程序 - 选择图片显示操作菜单

之前我分享过选择图片这个文章,但是我在实际开发测试使用中发现一个问题在使用 wx.chooseImage 选择照片显示出第一格是拍照,后面是相册里的图片。这种实现之前说过了,效果如下。 但是你从...

hello_hp ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部