/**

* 中文转拼音

*

* @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 实现中文-拼音转换相关推荐

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

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

  2. java获取拼音_java获取中文拼音

    /**使用方法 String str = null; try { str = new String("猪八戒".getBytes(), "GBK"); } ca ...

  3. java取字符串首字母_java 获取中文字符的首字母

    原理: GB2312编码中的中文是按照拼音排序的 注意: 一些生僻的字无法获得正确的首字母,原因是这些字都是后加入的. import java.io.UnsupportedEncodingExcept ...

  4. java 中文转成_Java将中文转换成unicode字符。

    在看Java国际化程序的实现.从最基础的建立不同国家的属性文件开始吧. 中文:你好! 英语:Hello! 法语:Bonjour! 在属性文件定义时必须按照"名称_国家代码"的形式命 ...

  5. java 中文转二进制_Java 实现中文与二进制代码互转

    //将二进制字符串转化为中文 import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; im ...

  6. java存入数据库是问号_Java插入中文到数据库中文变成问号解决

    转自:https://blog.csdn.net/hellosweet1/article/details/81673152 之所以会出现乱码,就是编码方式不一致导致的 我们应该首先确定 1. ecli ...

  7. Java计算文章多少字_java计算中文字数的代码实例

    这篇文章主要介绍了java统计汉字字数的方法,结合实例形式分析了java正则判定.字符串遍历及统计相关操作技巧,需要的朋友可以参考下 本文实例讲述了java统计汉字字数的方法.分享给大家供大家参考,具 ...

  8. java汉字转换成拼音_Java代码将汉字转换成拼音

    package com.sucre; //导入的jar包 import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pi ...

  9. mysql中文乱码解决_java+mysql中文乱码问题

    乱码问题原因有多种,其中有一种是由于MySQL默认使用 ISO-8859-1 ( 即Latin1 ) 字符集,而JAVA内部使用Unicode编码,因此在JAVA中向MYSQL数据库插入数据时,或者读 ...

  10. java获取时分秒毫秒_java实现时间格式转换(int整数类型的秒/毫秒---时分秒毫秒)...

    1. 直接上干货:(可提取为工具类收藏哦 ^_^) package com.drew.utils; import java.text.SimpleDateFormat; import java.uti ...

最新文章

  1. 强势推荐8款良心实用软件,让人心动!
  2. 拥抱 Node.js 8.0,N-API 入门极简例子
  3. Python面向对象(继承)
  4. centos 安装java1.7_centOs安装jdk1.7
  5. ebs和java哪个前景好_EBS与实例存储的好处(反之亦然)[关闭]
  6. c语言汇编混合编程方法,C语言和汇编语言混合编程方法
  7. activeperl安装不成功_SWOOLE进阶-00环境安装
  8. python 二重积分_Python机器学习(五十七)SciPy 积分
  9. 你会处理圆周率吗?----- Python操作文件应用举例
  10. 好好学习,好好Show
  11. iconpath 微信小程序_微信小程序 底部导航栏
  12. plc中PROFIBUS通信处理器介绍
  13. VS2013打包teamtalk
  14. 三角形~~行列式~~皮克公式~~gcd
  15. 家用计算机设置网络,手把手教您设置安装家庭无线网络
  16. java 山洞过火车 java_Java多线程之生产者消费者模型
  17. html七天签到页面,每日前端签到(第七天)
  18. Nginx如何跳转到非443端口的https
  19. Cadence PCB仿真使用Allegro PCB SI生成振铃ringing仿真报告及报告导读图文教程
  20. 无符号数与有符号数比较

热门文章

  1. 纽约客封面故事:欢迎来到「黑暗工厂」,这里是由机器统治的世界
  2. bzero 和 memset 函数对比
  3. 关于VMware无法输入许可证密钥的方法
  4. 步进与伺服电机区别与选型
  5. OpenFOAM工具详解 - renumberMesh
  6. (Hal库)GPIO常用调用函数功能描述
  7. python爬虫之模拟登陆(CSDN篇)
  8. adb工具包的安装和使用方法
  9. 发电机机房设计规范_柴油发电机房设计规范.docx
  10. 百度地图多点路线规划_自驾游路线规划神器:高德地图路书功能