java实现中文转拼音_Java 实现中文-拼音转换
/**
* 中文转拼音
*
* @author : CatalpaFlat
*/
public class ChineseToPinyinUtil {
/**
* 将文字转为汉语拼音
*
* @param chineseLanguage 要转成拼音的中文
*/
public static String toHanyuPinyin(String chineseLanguage) {
char[] clChars = chineseLanguage.trim().toCharArray();
StringBuilder hanyupinyin = new StringBuilder();
HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
// 输出拼音全部小写
defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
// 不带声调
defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
defaultFormat.setVCharType(HanyuPinyinVCharType.WITH_V);
try {
for (char clChar : clChars) {
// 如果字符是中文,则将中文转为汉语拼音
if (String.valueOf(clChar).matches("[\u4e00-\u9fa5]+")) {
hanyupinyin.append(PinyinHelper.toHanyuPinyinStringArray(clChar, defaultFormat)[0]);
// 如果字符不是中文,则不转换
} else {
hanyupinyin.append(clChar);
}
}
} catch (BadHanyuPinyinOutputFormatCombination e) {
System.out.println("字符不能转成汉语拼音");
}
return hanyupinyin.toString();
}
public static String getFirstLettersUp(String chineseLanguage) {
return getFirstLetters(chineseLanguage, HanyuPinyinCaseType.UPPERCASE);
}
public static String getFirstLettersLo(String chineseLanguage) {
return getFirstLetters(chineseLanguage, HanyuPinyinCaseType.LOWERCASE);
}
private static String getFirstLetters(String chineseLanguage, HanyuPinyinCaseType caseType) {
char[] clChars = chineseLanguage.trim().toCharArray();
StringBuilder hanyupinyin = new StringBuilder();
HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
// 输出拼音全部大写
defaultFormat.setCaseType(caseType);
// 不带声调
defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
try {
for (char clChar : clChars) {
String str = String.valueOf(clChar);
// 如果字符是中文,则将中文转为汉语拼音,并取第一个字母
if (str.matches("[\u4e00-\u9fa5]+")) {
hanyupinyin.append(PinyinHelper.toHanyuPinyinStringArray(clChar, defaultFormat)[0].substring(0, 1));
// 如果字符是数字,取数字
} else if (str.matches("[0-9]+")) {
hanyupinyin.append(clChar);
// 如果字符是字母,取字母
} else if (str.matches("[a-zA-Z]+")) {
hanyupinyin.append(clChar);
//如果是标点符号的话,带着
} else {// 否则不转换
hanyupinyin.append(clChar);
}
}
} catch (BadHanyuPinyinOutputFormatCombination e) {
System.out.println("字符不能转成汉语拼音");
}
return hanyupinyin.toString();
}
public static String getPinyinString(String chineseLanguage) {
char[] clChars = chineseLanguage.trim().toCharArray();
StringBuilder hanyupinyin = new StringBuilder();
HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
// 输出拼音全部大写
defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
// 不带声调
defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
try {
for (char clChar : clChars) {
String str = String.valueOf(clChar);
// 如果字符是中文,则将中文转为汉语拼音,并取第一个字母
if (str.matches("[\u4e00-\u9fa5]+")) {
hanyupinyin.append(PinyinHelper.toHanyuPinyinStringArray(
clChar, defaultFormat)[0]);
// 如果字符是数字,取数字
} else if (str.matches("[0-9]+")) {
// 如果字符是字母,取字母
hanyupinyin.append(clChar);
} else if (str.matches("[a-zA-Z]+")) {
hanyupinyin.append(clChar);
}
}
} catch (BadHanyuPinyinOutputFormatCombination e) {
System.out.println("字符不能转成汉语拼音");
}
return hanyupinyin.toString();
}
/**
* 取第一个汉字的第一个字符
*/
public static String getFirstLetter(String chineseLanguage) {
char[] clChars = chineseLanguage.trim().toCharArray();
String hanyupinyin = "";
HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
// 输出拼音全部大写
defaultFormat.setCaseType(HanyuPinyinCaseType.UPPERCASE);
// 不带声调
defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
try {
String str = String.valueOf(clChars[0]);
// 如果字符是中文,则将中文转为汉语拼音,并取第一个字母
if (str.matches("[\u4e00-\u9fa5]+")) {
hanyupinyin = PinyinHelper.toHanyuPinyinStringArray(
clChars[0], defaultFormat)[0].substring(0, 1);
// 如果字符是数字,取数字
} else if (str.matches("[0-9]+")) {
hanyupinyin += clChars[0];
// 如果字符是字母,取字母
} else if (str.matches("[a-zA-Z]+")) {
hanyupinyin += clChars[0];
}
} catch (BadHanyuPinyinOutputFormatCombination e) {
System.out.println("字符不能转成汉语拼音");
}
return hanyupinyin;
}
// public static void main(String[] args) {
// ChineseToPinyinUtil hanyuPinyinHelper = new ChineseToPinyinUtil();
// String city = ChineseToPinyinUtil.toHanyuPinyin("深圳市");
// String string = "shenzhen";
// if (city.contains(string)) {
// System.out.println("OK");
// }
// }
}复制代码
java实现中文转拼音_Java 实现中文-拼音转换相关推荐
- java 中文转拼音_JAVA 将中文转化为拼音工具类
将pinyin4j-2.5.0.jar (附件中有,记得解压)加入到classpath中. 工具类PinyinUtils代码见下:package com.test.utils; import net. ...
- java获取拼音_java获取中文拼音
/**使用方法 String str = null; try { str = new String("猪八戒".getBytes(), "GBK"); } ca ...
- java取字符串首字母_java 获取中文字符的首字母
原理: GB2312编码中的中文是按照拼音排序的 注意: 一些生僻的字无法获得正确的首字母,原因是这些字都是后加入的. import java.io.UnsupportedEncodingExcept ...
- java 中文转成_Java将中文转换成unicode字符。
在看Java国际化程序的实现.从最基础的建立不同国家的属性文件开始吧. 中文:你好! 英语:Hello! 法语:Bonjour! 在属性文件定义时必须按照"名称_国家代码"的形式命 ...
- java 中文转二进制_Java 实现中文与二进制代码互转
//将二进制字符串转化为中文 import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; im ...
- java存入数据库是问号_Java插入中文到数据库中文变成问号解决
转自:https://blog.csdn.net/hellosweet1/article/details/81673152 之所以会出现乱码,就是编码方式不一致导致的 我们应该首先确定 1. ecli ...
- Java计算文章多少字_java计算中文字数的代码实例
这篇文章主要介绍了java统计汉字字数的方法,结合实例形式分析了java正则判定.字符串遍历及统计相关操作技巧,需要的朋友可以参考下 本文实例讲述了java统计汉字字数的方法.分享给大家供大家参考,具 ...
- java汉字转换成拼音_Java代码将汉字转换成拼音
package com.sucre; //导入的jar包 import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pi ...
- mysql中文乱码解决_java+mysql中文乱码问题
乱码问题原因有多种,其中有一种是由于MySQL默认使用 ISO-8859-1 ( 即Latin1 ) 字符集,而JAVA内部使用Unicode编码,因此在JAVA中向MYSQL数据库插入数据时,或者读 ...
- java获取时分秒毫秒_java实现时间格式转换(int整数类型的秒/毫秒---时分秒毫秒)...
1. 直接上干货:(可提取为工具类收藏哦 ^_^) package com.drew.utils; import java.text.SimpleDateFormat; import java.uti ...
最新文章
- 强势推荐8款良心实用软件,让人心动!
- 拥抱 Node.js 8.0,N-API 入门极简例子
- Python面向对象(继承)
- centos 安装java1.7_centOs安装jdk1.7
- ebs和java哪个前景好_EBS与实例存储的好处(反之亦然)[关闭]
- c语言汇编混合编程方法,C语言和汇编语言混合编程方法
- activeperl安装不成功_SWOOLE进阶-00环境安装
- python 二重积分_Python机器学习(五十七)SciPy 积分
- 你会处理圆周率吗?----- Python操作文件应用举例
- 好好学习,好好Show
- iconpath 微信小程序_微信小程序 底部导航栏
- plc中PROFIBUS通信处理器介绍
- VS2013打包teamtalk
- 三角形~~行列式~~皮克公式~~gcd
- 家用计算机设置网络,手把手教您设置安装家庭无线网络
- java 山洞过火车 java_Java多线程之生产者消费者模型
- html七天签到页面,每日前端签到(第七天)
- Nginx如何跳转到非443端口的https
- Cadence PCB仿真使用Allegro PCB SI生成振铃ringing仿真报告及报告导读图文教程
- 无符号数与有符号数比较