ava汉字转拼音,主要是利用pinyin4j工具实现,有些场合,可能会用到汉字转换成拼音的功能,下面是具体的代码。

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;

/**

* java汉字转拼音操作工具类

* @author sunlightcs

* 2011-7-1

* http://hi.juziku.com/sunlightcs

*

*/

public class PinyingUtil {

/**

* 将字符串转换成拼音数组

*

* @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

*/

@SuppressWarnings("deprecation")

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) {

e.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) {

System.out.println(hanziToPinyin("是否大写",""));

}

} 注意:要用到的jar

附件:

pinyin4j-2.5.0.jar (209KB)

【下载次数: 50】

中文转拼音 java_java汉字转拼音 - java-苦苦甜甜的个人空间 - OSCHINA - 中文开源技术交流社区...相关推荐

  1. 汉字转拼音 java_Java汉字转拼音工具类完整代码实例

    添加依赖 com.belerweb pinyin4j 2.5.1 工具类代码: public class PinYinUtils { public static HanyuPinyinOutputFo ...

  2. 汉字转换拼音 java_java 汉字转换拼音

    maven依赖 com.belerweb pinyin4j 2.5.0 import net.sourceforge.pinyin4j.PinyinHelper; import net.sourcef ...

  3. 拒绝java_java拒绝策略 - V丶zxw的个人空间 - OSCHINA - 中文开源技术交流社区

    java拒接策略 // 拒绝策略需要实现的接口 // 如果我们想实现自己的拒绝策略实现这个接口就行了 public interface RejectedExecutionHandler { // 只有 ...

  4. java简述标识符和保留字区别,Java - osc_lbt7zo1x的个人空间 - OSCHINA - 中文开源技术交流社区...

    一.关键字保留 关键字(keyword)的定义和特点 1.定义:被Java语言赋予了特殊含义,用做专门用途的字符串(单词) 2.特点:关键字中所有字母都为小写 用于定义数据类型的关键字 class i ...

  5. java 滚动加载_滚动加载 - java-苦苦甜甜的个人空间 - OSCHINA - 中文开源技术交流社区...

    html代码如下: 滚动条距离底部 #parse("front/common/include.html") $(function () { var i = 4; $(window) ...

  6. 在PostgreSQL中实现按拼音、汉字、拼音首字母搜索的例子

    在PostgreSQL中实现按拼音.汉字.拼音首字母搜索的例子 作者 digoal 日期 2016-11-09 标签 PostgreSQL , 拼音 , 中文分词 , tsvector , 拼音首字母 ...

  7. MySQL 创建函数, MySQL定义函数实现汉字转拼音 MySQL汉字转拼音MySQL汉字生成拼音字符串

    MySQL 创建函数, MySQL定义函数实现汉字转拼音 MySQL汉字转拼音 一.MySQL创建函数 1.语法 CREATE FUNCTION fun_name([paramName type , ...

  8. java汉字转拼音maven_汉字转拼音的Java开源类库 – jpinyin

    jpinyin – A opensource java library for converting chinese to pinyin JPinyin是一个汉字转拼音的Java开源类库,在PinYi ...

  9. Java 汉字转拼音 Scala 汉字转拼音

    汉字转拼音 Maven引用 <dependency><groupId>com.belerweb</groupId><artifactId>pinyin4 ...

最新文章

  1. Gut: 妊娠期糖尿病与孕妇及其新生儿微生物菌群失调有关(赵方庆作品)
  2. validator API文档
  3. Chrome 插件开发-桌面通知设置实战演示,设置通知显示、存在时间
  4. sap中Excel的模版上传和下载
  5. SAP Spartacus B2B User 页面的数据读取逻辑设计
  6. outlook存档邮件_如何在Outlook 2013中存档电子邮件
  7. Egg Node.js 从小工坊走向企业级开发 #20
  8. Android 进度条改变图片透明度
  9. 程序猿提升自己水平的方法
  10. OpenCV-绘制箭头cv::arrowedLine
  11. 服务器设置站点网站为本地IP
  12. 091118 T 数组的继承
  13. 4.10验证码(抠图)和超级鹰的使用
  14. 安全合规/法案--36--《个人信息保护法》原文及解读
  15. 中国工科研究生200多篇英文论文中最常见的习惯(The Most Common Habits from more than 200 English Papers written by Gradua)
  16. Python ftp 下载AHI数据
  17. Mybatis(一)Mybatis的基本使用
  18. Cannot use import statement outside a module
  19. u盘一插上计算机就不响应,u盘插上没反应解决方法
  20. EF中的EntityState几个状态的说明

热门文章

  1. python爬虫+mongodb+matlab彩票抓取
  2. 【MySQL数据库】MySQL的卸载
  3. 《软件测试》第五章 带上眼罩测试软件
  4. PHP实现百度人脸识别
  5. 漫画 | 我在大厂做外包
  6. 战神开发者gm工具MYSQL配置_第十五讲 战神引擎GM号增加和命令使用
  7. CAD的一些常用命令
  8. OSError: Could not find lib c or load any of its variants [].
  9. 对话极客修CEO吴玮:线上线下融合将催生旗舰型维修服务平台
  10. 使用 IBM Network Advisor 监视 SAN 交换机性能