pinyin4j-2.5.0.jar 工具类
pinyin4j-2.5.0.jar 使用
- package com.xcu.util;
- 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;
- /**
- *
- * 获取汉语文字的拼音
- *
- * @author Everest
- * @version 1.0 23/07/2010
- *
- */
- public class PinyinUtil {
- /** 汉语拼音格式化工具类 */
- private static HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
- /**
- * 获取字符串内的所有汉字的汉语拼音
- * @param src
- * @return
- */
- public static String spell(String src) {
- format.setCaseType(HanyuPinyinCaseType.LOWERCASE); // 小写拼音字母
- format.setToneType(HanyuPinyinToneType.WITHOUT_TONE); // 不加语调标识
- format.setVCharType(HanyuPinyinVCharType.WITH_V); // u:的声母替换为v
- StringBuffer sb = new StringBuffer();
- int strLength = src.length();
- try {
- for (int i = 0; i < strLength; i++) {
- // 对英文字母的处理:小写字母转换为大写,大写的直接返回
- char ch = src.charAt(i);
- if (ch >= 'a' && ch <= 'z')
- sb.append((char) (ch - 'a' + 'A'));
- if (ch >= 'A' && ch <= 'Z')
- sb.append(ch);
- // 对汉语的处理
- String[] arr = PinyinHelper.toHanyuPinyinStringArray(ch, format);
- if (arr != null && arr.length > 0)
- sb.append(arr[0]).append(" ");
- }
- } catch (BadHanyuPinyinOutputFormatCombination e) {
- e.printStackTrace();
- }
- return sb.toString();
- }
- /**
- * 获取字符串内的所有汉字的汉语拼音并大写每个字的首字母
- * @param src
- * @return
- */
- public static String spellWithTone(String src) {
- format.setCaseType(HanyuPinyinCaseType.LOWERCASE);// 小写
- format.setToneType(HanyuPinyinToneType.WITH_TONE_MARK);// 标声调
- format.setVCharType(HanyuPinyinVCharType.WITH_U_UNICODE);// u:的声母
- if (src == null) {
- return null;
- }
- try {
- StringBuilder sb = new StringBuilder();
- for (int i = 0; i < src.length(); i++) {
- // 对英文字母的处理:小写字母转换为大写,大写的直接返回
- char ch = src.charAt(i);
- if (ch >= 'a' && ch <= 'z')
- sb.append((char) (ch - 'a' + 'A'));
- if (ch >= 'A' && ch <= 'Z')
- sb.append(ch);
- // 对汉语的处理
- String[] arr = PinyinHelper.toHanyuPinyinStringArray(ch, format);
- if (arr == null || arr.length == 0) {
- continue;
- }
- String s = arr[0];// 不管多音字,只取第一个
- char c = s.charAt(0);// 大写第一个字母
- String pinyin = String.valueOf(c).toUpperCase().concat(s.substring(1));
- sb.append(pinyin).append(" ");
- }
- return sb.toString();
- } catch (BadHanyuPinyinOutputFormatCombination e) {
- e.printStackTrace();
- }
- return null;
- }
- /**
- * 获取字符串内的所有汉字的汉语拼音并大写每个字的首字母
- * @param src
- * @return
- */
- public static String spellNoneTone(String src) {
- format.setCaseType(HanyuPinyinCaseType.LOWERCASE);// 小写
- format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);// 标声调
- format.setVCharType(HanyuPinyinVCharType.WITH_U_UNICODE);// u:的声母
- if (src == null) {
- return null;
- }
- try {
- StringBuilder sb = new StringBuilder();
- for (int i = 0; i < src.length(); i++) {
- // 对英文字母的处理:小写字母转换为大写,大写的直接返回
- char ch = src.charAt(i);
- if (ch >= 'a' && ch <= 'z')
- sb.append((char) (ch - 'a' + 'A'));
- if (ch >= 'A' && ch <= 'Z')
- sb.append(ch);
- // 对汉语的处理
- String[] arr = PinyinHelper.toHanyuPinyinStringArray(ch, format);
- if (arr == null || arr.length == 0) {
- continue;
- }
- String s = arr[0];// 不管多音字,只取第一个
- char c = s.charAt(0);// 大写第一个字母
- String pinyin = String.valueOf(c).toUpperCase().concat(s.substring(1));
- sb.append(pinyin).append("");
- }
- return sb.toString();
- } catch (BadHanyuPinyinOutputFormatCombination e) {
- e.printStackTrace();
- }
- return null;
- }
- /**
- * 获取汉语第一个字的首英文字母
- * @param src
- * @return
- */
- public static String getTerm(String src){
- String res = spell(src);
- if(res!=null&&res.length()>0){
- return res.toUpperCase().charAt(0)+"";
- }else{
- return "OT";
- }
- }
- /**
- * @param args
- */
- public static void main(String[] args) {
- System.out.println("---------------------spellWithTone");
- System.out.println(spellWithTone("English"));
- System.out.println(spellWithTone("有志者事竟成,阿斯顿佛"));
- System.out.println(spellWithTone("中华人民共和国"));
- System.out.println(spellWithTone("单丽丽"));
- System.out.println("-----------------------------spell");
- System.out.println(spell("English"));
- System.out.println(spell("有志者事竟成,阿斯顿佛"));
- System.out.println(spell("中华人民共和国"));
- System.out.println(spell("单丽丽"));
- System.out.println("----------------------spellNoneTone");
- System.out.println(spellNoneTone("English"));
- System.out.println(spellNoneTone("有志者事竟成,阿斯顿佛"));
- System.out.println(spellNoneTone("中华人民共和国"));
- System.out.println(spellNoneTone("单丽丽"));
- System.out.println("---------------------------getTerm");
- System.out.println(getTerm("English"));
- System.out.println(getTerm("有志者事竟成,阿斯顿佛"));
- System.out.println(getTerm("中华人民共和国"));
- System.out.println(getTerm("单丽丽"));
- }
- }
package com.xcu.util;
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;
/**
*
* 获取汉语文字的拼音
*
* @author Everest
* @version 1.0 23/07/2010
*
*/
public class PinyinUtil {
/** 汉语拼音格式化工具类 */
private static HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
/**
* 获取字符串内的所有汉字的汉语拼音
* @param src
* @return
*/
public static String spell(String src) {
format.setCaseType(HanyuPinyinCaseType.LOWERCASE); // 小写拼音字母
format.setToneType(HanyuPinyinToneType.WITHOUT_TONE); // 不加语调标识
format.setVCharType(HanyuPinyinVCharType.WITH_V); // u:的声母替换为v
StringBuffer sb = new StringBuffer();
int strLength = src.length();
try {
for (int i = 0; i < strLength; i++) {
// 对英文字母的处理:小写字母转换为大写,大写的直接返回
char ch = src.charAt(i);
if (ch >= 'a' && ch <= 'z')
sb.append((char) (ch - 'a' + 'A'));
if (ch >= 'A' && ch <= 'Z')
sb.append(ch);
// 对汉语的处理
String[] arr = PinyinHelper.toHanyuPinyinStringArray(ch, format);
if (arr != null && arr.length > 0)
sb.append(arr[0]).append(" ");
}
} catch (BadHanyuPinyinOutputFormatCombination e) {
e.printStackTrace();
}
return sb.toString();
}
/**
* 获取字符串内的所有汉字的汉语拼音并大写每个字的首字母
* @param src
* @return
*/
public static String spellWithTone(String src) {
format.setCaseType(HanyuPinyinCaseType.LOWERCASE);// 小写
format.setToneType(HanyuPinyinToneType.WITH_TONE_MARK);// 标声调
format.setVCharType(HanyuPinyinVCharType.WITH_U_UNICODE);// u:的声母
if (src == null) {
return null;
}
try {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < src.length(); i++) {
// 对英文字母的处理:小写字母转换为大写,大写的直接返回
char ch = src.charAt(i);
if (ch >= 'a' && ch <= 'z')
sb.append((char) (ch - 'a' + 'A'));
if (ch >= 'A' && ch <= 'Z')
sb.append(ch);
// 对汉语的处理
String[] arr = PinyinHelper.toHanyuPinyinStringArray(ch, format);
if (arr == null || arr.length == 0) {
continue;
}
String s = arr[0];// 不管多音字,只取第一个
char c = s.charAt(0);// 大写第一个字母
String pinyin = String.valueOf(c).toUpperCase().concat(s.substring(1));
sb.append(pinyin).append(" ");
}
return sb.toString();
} catch (BadHanyuPinyinOutputFormatCombination e) {
e.printStackTrace();
}
return null;
}
/**
* 获取字符串内的所有汉字的汉语拼音并大写每个字的首字母
* @param src
* @return
*/
public static String spellNoneTone(String src) {
format.setCaseType(HanyuPinyinCaseType.LOWERCASE);// 小写
format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);// 标声调
format.setVCharType(HanyuPinyinVCharType.WITH_U_UNICODE);// u:的声母
if (src == null) {
return null;
}
try {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < src.length(); i++) {
// 对英文字母的处理:小写字母转换为大写,大写的直接返回
char ch = src.charAt(i);
if (ch >= 'a' && ch <= 'z')
sb.append((char) (ch - 'a' + 'A'));
if (ch >= 'A' && ch <= 'Z')
sb.append(ch);
// 对汉语的处理
String[] arr = PinyinHelper.toHanyuPinyinStringArray(ch, format);
if (arr == null || arr.length == 0) {
continue;
}
String s = arr[0];// 不管多音字,只取第一个
char c = s.charAt(0);// 大写第一个字母
String pinyin = String.valueOf(c).toUpperCase().concat(s.substring(1));
sb.append(pinyin).append("");
}
return sb.toString();
} catch (BadHanyuPinyinOutputFormatCombination e) {
e.printStackTrace();
}
return null;
}
/**
* 获取汉语第一个字的首英文字母
* @param src
* @return
*/
public static String getTerm(String src){
String res = spell(src);
if(res!=null&&res.length()>0){
return res.toUpperCase().charAt(0)+"";
}else{
return "OT";
}
}
/**
* @param args
*/
public static void main(String[] args) {
System.out.println("---------------------spellWithTone");
System.out.println(spellWithTone("English"));
System.out.println(spellWithTone("有志者事竟成,阿斯顿佛"));
System.out.println(spellWithTone("中华人民共和国"));
System.out.println(spellWithTone("单丽丽"));
System.out.println("-----------------------------spell");
System.out.println(spell("English"));
System.out.println(spell("有志者事竟成,阿斯顿佛"));
System.out.println(spell("中华人民共和国"));
System.out.println(spell("单丽丽"));
System.out.println("----------------------spellNoneTone");
System.out.println(spellNoneTone("English"));
System.out.println(spellNoneTone("有志者事竟成,阿斯顿佛"));
System.out.println(spellNoneTone("中华人民共和国"));
System.out.println(spellNoneTone("单丽丽"));
System.out.println("---------------------------getTerm");
System.out.println(getTerm("English"));
System.out.println(getTerm("有志者事竟成,阿斯顿佛"));
System.out.println(getTerm("中华人民共和国"));
System.out.println(getTerm("单丽丽"));
}
}
实例运行效果如下:
pinyin4j-2.5.0.jar 工具类相关推荐
- poi报表导出4.1.0版本工具类 导出并下载
这一段时间,由于项目上线基于稳定,所以我这边在基于我们一期迭代的分支上优化一部分我们之前没有做的功能,报表导出.本身之前用的是3.5的版本,但是由于同事要写导入,写的代码只有4.1.0的版本支持,所以 ...
- pinyin4j汉字转换拼音的工具类
import net.sourceforge.pinyin4j.PinyinHelper;/*** 功能说明:汉字转换拼音工具类* * @author LZG*/ public class Pinyi ...
- ddmlib-25.3.0.jar IDevice类
ddmlib获取安卓设备信息. ddmlib的版本是25.3.0 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 以下是class类 ...
- java 拼音 jar_Java实现的汉语拼音工具类完整实例
本文实例讲述了Java实现的汉语拼音工具类.分享给大家供大家参考,具体如下: package test; import net.sourceforge.pinyin4j.PinyinHelper; i ...
- java导出类_java导出excel工具类
java导出excel须要使用HSSFWorkbook这个类,须要导入poi-3.6-20091214.jar 工具类调用例如以下: package com.qlwb.business.util; i ...
- java 兼容excel_Java解析Excel工具类(兼容xls和xlsx)
依赖jar org.apache.poi poi-ooxml 4.0.1 ExcelUtils.java package javax.utils; import java.io.File; impor ...
- 记录一下:Java 汉字获取拼音或首字母工具类
记录一下:Java 汉字获取拼音或首字母工具类 Maven依赖配置 Java代码 本文主要记录一下在Java中,如何将字符串中的中文转化为拼音,获取汉字串拼音首字母,获取汉字串拼音的工具类,以及相关的 ...
- Word或Excel 转Pdf 工具类(License 去水印)
Word或Excel 转Pdf 帮助类 需要引入jar包: aspose-words-15.8.0-jdk16.jar aspose-cells-8.5.2.jar 工具类 import com.as ...
- Android开发之dp转像素,像素转换为dp工具类,详细代码,带有源文件下载地址。...
2019独角兽企业重金招聘Python工程师标准>>> import android.content.Context; /** * @author 官网:http://www.93s ...
最新文章
- NBT:宏基因组二、三代混合组装软件OPERA-MS
- 给Eclipse提速的7个技巧(转)
- Android动态加载插件APK
- python心理学实验程序_psychopy coder模式编写心理试验程序 字符程序和记录反应时...
- 如何成为云原生时代的卓越架构师
- android 拦截外拨电话,Android拦截外拨电话程序示例
- java.lang.Math类的API介绍
- 【渝粤教育】广东开放大学 供应链与物流管理 形成性考核 (56)
- 关于最近很火的“快用苹果助手”和“pp助手”使用正版软件闪退问题的说明
- 汽车之家所有车型价格爬虫
- 基于mysql的报表工具有哪些?值得推荐的mysql报表工具
- Python3,1行代码,去除图片的背景图,确实香。
- 机器学习实战读书笔记-朴素贝叶斯
- python求解组合数_6-2 jmu-python-组合数据类型-1.计算坐标点欧氏距离 (10分)
- Spring框架基础(2)----Bean的创建及标签属性
- JAVA高并发学习笔记(二) 多线程基础
- 关于MFC修改CButton按钮的颜色、背景、字体
- 赋能 打造应对不确定性的敏捷团队 pdf_“复”有诗书气自华之赋能 —— 打造应对不确定性的敏捷团队...
- Redux 入门教程,应用的状态管理器
- 《被讨厌的勇气》- 让干涉你的人见鬼去吧