jar包下载:https://pan.baidu.com/s/1SAaONZxCMMfdxOFN1kzbrQ    密码:a71c

Pinyin4JTest.java(测试类):

package cn.xxx.bos.test;import org.apache.commons.lang3.StringUtils;
import org.junit.Test;import cn.xxx.bos.utils.PinYin4jUtils;  //导入工具类public class Pinyin4JTest {@Testpublic void test1(){//河北省 石家庄市    桥西区String province = "河北省";String city = "石家庄市";String district = "桥西区";//简码---->>HBSJZQXprovince = province.substring(0, province.length() - 1);city = city.substring(0, city.length() - 1);district = district.substring(0, district.length() - 1);String info = province + city + district;//获取拼音首字母大写String[] headByString = PinYin4jUtils.getHeadByString(info);String shortcode = StringUtils.join(headByString);System.out.println(shortcode);   //HBSJZQX//根据汉字获取拼音String citycode = PinYin4jUtils.hanziToPinyin(city, "");  //第二个参数表示分隔符,默认空格System.out.println(citycode);   //shijiazhuang}
}

PinYin4jUtils.java(工具类):

package cn.xxx.bos.utils;import java.util.Arrays;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.exception.BadHanyuPinyinOutputFormatCombination;public class PinYin4jUtils {/*** 将字符串转换成拼音数组* * @param src* @return*/public static String[] stringToPinyin(String src) {return stringToPinyin(src, false, null);}/*** 将字符串转换成拼音数组* * @param src* @return*/public static String[] stringToPinyin(String src, String separator) {return stringToPinyin(src, true, separator);}/*** 将字符串转换成拼音数组* * @param src* @param isPolyphone*            是否查出多音字的所有拼音* @param separator*            多音字拼音之间的分隔符* @return*/public static String[] stringToPinyin(String src, boolean isPolyphone,String separator) {// 判断字符串是否为空if ("".equals(src) || null == src) {return null;}char[] srcChar = src.toCharArray();int srcCount = srcChar.length;String[] srcStr = new String[srcCount];for (int i = 0; i < srcCount; i++) {srcStr[i] = charToPinyin(srcChar[i], isPolyphone, separator);}return srcStr;}/*** 将单个字符转换成拼音* * @param src* @return*/public static String charToPinyin(char src, boolean isPolyphone,String separator) {// 创建汉语拼音处理类HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();// 输出设置,大小写,音标方式defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);StringBuffer tempPinying = new StringBuffer();// 如果是中文if (src > 128) {try {// 转换得出结果String[] strs = PinyinHelper.toHanyuPinyinStringArray(src,defaultFormat);// 是否查出多音字,默认是查出多音字的第一个字符if (isPolyphone && null != separator) {for (int i = 0; i < strs.length; i++) {tempPinying.append(strs[i]);if (strs.length != (i + 1)) {// 多音字之间用特殊符号间隔起来tempPinying.append(separator);}}} else {tempPinying.append(strs[0]);}} catch (BadHanyuPinyinOutputFormatCombination e) {e.printStackTrace();}} else {tempPinying.append(src);}return tempPinying.toString();}public static String hanziToPinyin(String hanzi) {return hanziToPinyin(hanzi, " ");}/*** 将汉字转换成拼音* * @param hanzi* @param separator* @return*/public static String hanziToPinyin(String hanzi, String separator) {// 创建汉语拼音处理类HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();// 输出设置,大小写,音标方式defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);String pinyingStr = "";try {pinyingStr = PinyinHelper.toHanyuPinyinString(hanzi, defaultFormat,separator);} catch (BadHanyuPinyinOutputFormatCombination e) {// TODO Auto-generated catch blocke.printStackTrace();}return pinyingStr;}/*** 将字符串数组转换成字符串* * @param str* @param separator*            各个字符串之间的分隔符* @return*/public static String stringArrayToString(String[] str, String separator) {StringBuffer sb = new StringBuffer();for (int i = 0; i < str.length; i++) {sb.append(str[i]);if (str.length != (i + 1)) {sb.append(separator);}}return sb.toString();}/*** 简单的将各个字符数组之间连接起来* * @param str* @return*/public static String stringArrayToString(String[] str) {return stringArrayToString(str, "");}/*** 将字符数组转换成字符串* * @param str* @param separator*            各个字符串之间的分隔符* @return*/public static String charArrayToString(char[] ch, String separator) {StringBuffer sb = new StringBuffer();for (int i = 0; i < ch.length; i++) {sb.append(ch[i]);if (ch.length != (i + 1)) {sb.append(separator);}}return sb.toString();}/*** 将字符数组转换成字符串* * @param str* @return*/public static String charArrayToString(char[] ch) {return charArrayToString(ch, " ");}/*** 取汉字的首字母* * @param src* @param isCapital*            是否是大写* @return*/public static char[] getHeadByChar(char src, boolean isCapital) {// 如果不是汉字直接返回if (src <= 128) {return new char[] { src };}// 获取所有的拼音String[] pinyingStr = PinyinHelper.toHanyuPinyinStringArray(src);// 创建返回对象int polyphoneSize = pinyingStr.length;char[] headChars = new char[polyphoneSize];int i = 0;// 截取首字符for (String s : pinyingStr) {char headChar = s.charAt(0);// 首字母是否大写,默认是小写if (isCapital) {headChars[i] = Character.toUpperCase(headChar);} else {headChars[i] = headChar;}i++;}return headChars;}/*** 取汉字的首字母(默认是大写)* * @param src* @return*/public static char[] getHeadByChar(char src) {return getHeadByChar(src, true);}/*** 查找字符串首字母* * @param src* @return*/public static String[] getHeadByString(String src) {return getHeadByString(src, true);}/*** 查找字符串首字母* * @param src* @param isCapital*            是否大写* @return*/public static String[] getHeadByString(String src, boolean isCapital) {return getHeadByString(src, isCapital, null);}/*** 查找字符串首字母* * @param src* @param isCapital*            是否大写* @param separator*            分隔符* @return*/public static String[] getHeadByString(String src, boolean isCapital,String separator) {char[] chars = src.toCharArray();String[] headString = new String[chars.length];int i = 0;for (char ch : chars) {char[] chs = getHeadByChar(ch, isCapital);StringBuffer sb = new StringBuffer();if (null != separator) {int j = 1;for (char ch1 : chs) {sb.append(ch1);if (j != chs.length) {sb.append(separator);}j++;}} else {sb.append(chs[0]);}headString[i] = sb.toString();i++;}return headString;}public static void main(String[] args) {// pin4j 简码 和 城市编码 String s1 = "中华人民共和国"; String[] headArray = getHeadByString(s1); // 获得每个汉字拼音首字母System.out.println(Arrays.toString(headArray));String s2 ="长城" ; System.out.println(Arrays.toString(stringToPinyin(s2,true,",")));String s3 ="长";System.out.println(Arrays.toString(stringToPinyin(s3,true,",")));}
}

javaEE pinyin4j,根据汉字获取拼音相关推荐

  1. 记录一下:Java 汉字获取拼音或首字母工具类

    记录一下:Java 汉字获取拼音或首字母工具类 Maven依赖配置 Java代码 本文主要记录一下在Java中,如何将字符串中的中文转化为拼音,获取汉字串拼音首字母,获取汉字串拼音的工具类,以及相关的 ...

  2. 基于struts2、spring、spring data jpa实现poi导入 + pinyin4j将汉字转换为拼音

    基于struts2.spring.spring data jpa实现poi导入 + pinyin4j将汉字转换为拼音 1.引入坐标到pom.xml <!-- Excel解析工具类 -->& ...

  3. php 获取 拼音,php根据汉字获取拼音(php基于拼音搜索实现原理)

    php根据汉字获取拼音(php基于拼音搜索实现原理) 代码一:获取字符串汉字首字母,兼容GBK和UTF-8<?php function getfirstchar($s0){ //获取单个汉字拼音 ...

  4. java使用pinyin4j实现汉字到拼音转换

    1.在pom文件中导入pinyin4j的依赖 <dependency><groupId>com.belerweb</groupId><artifactId&g ...

  5. Java汉字获取拼音、笔划、偏旁部首

    本文需要配合文本库使用,在文章底部附文本库文件 废话不多说 直接上代码: import java.io.BufferedReader; import java.io.IOException; impo ...

  6. 通过pinyin4j将汉字转换为拼音

    pinyin4j提供了汉语转拼音的一个开源库, 支持多种拼音系统:汉语拼音. 通用拼音 .威氏拼音.注音二式.雅礼.  国语罗马字. 但是遗憾的是不支持多音字 首先下载jar包:http://piny ...

  7. Java:利用pinyin4j实现汉字转拼音

    汉字转拼音是一个比较实用的功能,这里演示第三方库pinyin4j如何实现此功能 <!-- 导入pom依赖 --> <dependency><groupId>com. ...

  8. ORACLE根据汉字获取拼音码:首字母/全拼/首字母截取

    create or replace package  GetHZPY is --oracle汉字转拼音 PACKAGE     --1.获得全拼  www.2cto.com   --SELECT GE ...

  9. java 拼音转汉字_Java通过pinyin4j实现汉字转拼音

    package com.zxy.timecard.utils; import net.sourceforge.pinyin4j.PinyinHelper; /** * 拼音工具类 * @author ...

最新文章

  1. 【Python】条件及循环语句
  2. 应用程序池优化配置方案(IIS7、IIS7.5)
  3. 《深入理解计算机系统》(2) 信息的表示和处理
  4. 别不信!servlet获取到的参数值,也许完全出乎你的意料!
  5. Ninject.Web.Common,Ninject.MVC3源码分析
  6. 转 Grub4Dos硬盘安装Fedora/CentOS Linux操作系统
  7. tomcat启动超时(timeout)解决方法
  8. Android WebView中图片自适应居中
  9. cpu核心分配给不同进程linux,Linux技巧:多核下绑定硬件/进程到不同CPU
  10. 读Zepto源码之Touch模块
  11. 软件测试方法和技术知识点简摘
  12. 数学建模——层次分析法(Matlab)【评价类问题】
  13. 计算机网络习题集与习题解析 pdf,计算机网络习题集与答案.pdf
  14. 网上下载或自己编程实现任意一种多变量决策树算法,并观察其在西瓜数据集3.0上产生的结果。
  15. c语言实现string sds,redis内部数据结构之SDS简单动态字符串详解
  16. 使用 Cloudflare 进行域名跳转(重定向)
  17. Exp4 恶意代码分析 20164323段钊阳
  18. 智能合约自动化工具:示例指南
  19. 杂志风城市夜景PPT模板
  20. 《学会提问》读书笔记

热门文章

  1. 《缠中说禅108课》89:中阴阶段的具体分析
  2. 数据结构 严薇敏 栈 的实现及其使用方法详解
  3. NSLog日志输出不全问题分析与解决方案
  4. 删除掉指定目录下的.nomedia文件夹和文件
  5. 教你如何用python制作黑板模拟器 python 项目小发明 【安安教具】-【工具】-【黑板】模拟器
  6. Flutter 学习 - Dart 语言基础
  7. easyConnect无法连接到服务端,之前可以
  8. BUUCTF--[网鼎杯 2020 半决赛]AliceWebsite
  9. java不知名设计模式
  10. ipad pro能用python编程吗_iPad Pro 上还能编程?一点都不稀奇