pinyin4j工具类

1. 导入依赖

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

2. 工具类

 PinYin4jUtils 工具类package cn.itcast.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, ",")));}}

pinyin4j工具类相关推荐

  1. java pinyin4j.jar 下载_Java pinyin4j 工具类实现代码分享

    工具类代码:package com.what21.util.pinyin; import net.sourceforge.pinyin4j.PinyinHelper; import net.sourc ...

  2. java中文姓名排序pinyin4j-2.5.0,pinyin4j工具类--Java 中文字符操作:排序、拼音

    直接上代码吧!将汉子转化为拼音,用到"pinyin4j-2.5.0.jar". 1.ChinaWord.java : 汉子排序 /** * @包名 :com.andy.汉字排序 * ...

  3. Pinyin4j 的使用 Pinyin4jUtils工具类

    官网 功能 1.支持简体中文和繁体中文字符. 2.支持转换到汉语拼音,通用拼音, 威妥玛拼音(威玛拼法), 注音符号第二式, 耶鲁拼法和国语罗马字. 3.支持多音字,即可以获取一个中文字符的多种发音. ...

  4. Pinyin4j之Pinyin4jUtils工具类

    介绍 Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的转换,拼音输出格式可以定制. Pinyin4jUtils工具类是进行包装,进行支持一一些转换方法 支持方法 输入一个字符串可以给我 ...

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

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

  6. 汉字转拼音工具类pinyin4j

    依赖jar包 <dependency><groupId>com.belerweb</groupId><artifactId>pinyin4j</a ...

  7. pinyin4j汉字转换拼音的工具类

    import net.sourceforge.pinyin4j.PinyinHelper;/*** 功能说明:汉字转换拼音工具类* * @author LZG*/ public class Pinyi ...

  8. Java实用工具类-将汉字转为拼音

    1. 导入对应的jar包 <dependency><groupId>com.belerweb</groupId><artifactId>pinyin4j ...

  9. java 中文转拼音_JAVA 将中文转化为拼音工具类

    将pinyin4j-2.5.0.jar (附件中有,记得解压)加入到classpath中. 工具类PinyinUtils代码见下:package com.test.utils; import net. ...

最新文章

  1. Test tape drive on Command Line
  2. 多标签文本分类 [ALBERT](附代码)
  3. python类与继承person类_关于python中类的继承及self
  4. BZOJ2240 完全平方数
  5. PermGen space处理方法1
  6. 11.reindex操作
  7. 技术交流论坛_天气预报|“第一届国家建筑工程与材料测试技术论坛”暨“第七届全国建筑材料测试技术”交流会...
  8. 由〈非你莫属〉想到与客户的沟通
  9. 【转】CSS和SVG中的剪切——clip-path属性和clipPath元素
  10. Spring MVC 3.0 深入
  11. Javascript特效:获取选中内容分享至微博
  12. JxBrowser 与 JavaFX WebView
  13. 检测压缩包并处理的Linux脚本(解压、批量修改文件名、导入)分析
  14. 12款高质量的免费 HTML 网站模板下载
  15. 【第一阶段 day25 面向对象】 多态
  16. ISBN书号查询图书数据
  17. 利用PaddleDetection 训练自定义VOC数据集进行目标检测
  18. SDNUOJ 1682.easy problem Ⅲ
  19. 太阳直射点纬度计算公式_干货 | 正午太阳高度公式及其应用!
  20. windows 电脑图片/视频不展示预览图

热门文章

  1. Tkinter类之窗口部件类
  2. 支撑好分期千万级还款的支付系统
  3. 华侨大学计算机学院保研情况,华侨大学计算机科学与技术学院导师简介:张国亮...
  4. 日语课学过的初级惯用句
  5. 你的下一款绘图软件,何必是visio——Draw.io推荐及使用
  6. 真无线蓝牙耳机怎么选?好用的真无线蓝牙耳机推荐
  7. 计算任意三边三角形的面积的算法
  8. 装系统提示缺少计算机所需的介质驱动程序,安装Win10系统提示“缺少计算机所需的介质驱动程序”(图文)...
  9. IIS设置——大杂烩
  10. 税务所核查公司地址记