中文转拼音 java_java汉字转拼音 - java-苦苦甜甜的个人空间 - OSCHINA - 中文开源技术交流社区...
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 - 中文开源技术交流社区...相关推荐
- 汉字转拼音 java_Java汉字转拼音工具类完整代码实例
添加依赖 com.belerweb pinyin4j 2.5.1 工具类代码: public class PinYinUtils { public static HanyuPinyinOutputFo ...
- 汉字转换拼音 java_java 汉字转换拼音
maven依赖 com.belerweb pinyin4j 2.5.0 import net.sourceforge.pinyin4j.PinyinHelper; import net.sourcef ...
- 拒绝java_java拒绝策略 - V丶zxw的个人空间 - OSCHINA - 中文开源技术交流社区
java拒接策略 // 拒绝策略需要实现的接口 // 如果我们想实现自己的拒绝策略实现这个接口就行了 public interface RejectedExecutionHandler { // 只有 ...
- java简述标识符和保留字区别,Java - osc_lbt7zo1x的个人空间 - OSCHINA - 中文开源技术交流社区...
一.关键字保留 关键字(keyword)的定义和特点 1.定义:被Java语言赋予了特殊含义,用做专门用途的字符串(单词) 2.特点:关键字中所有字母都为小写 用于定义数据类型的关键字 class i ...
- java 滚动加载_滚动加载 - java-苦苦甜甜的个人空间 - OSCHINA - 中文开源技术交流社区...
html代码如下: 滚动条距离底部 #parse("front/common/include.html") $(function () { var i = 4; $(window) ...
- 在PostgreSQL中实现按拼音、汉字、拼音首字母搜索的例子
在PostgreSQL中实现按拼音.汉字.拼音首字母搜索的例子 作者 digoal 日期 2016-11-09 标签 PostgreSQL , 拼音 , 中文分词 , tsvector , 拼音首字母 ...
- MySQL 创建函数, MySQL定义函数实现汉字转拼音 MySQL汉字转拼音MySQL汉字生成拼音字符串
MySQL 创建函数, MySQL定义函数实现汉字转拼音 MySQL汉字转拼音 一.MySQL创建函数 1.语法 CREATE FUNCTION fun_name([paramName type , ...
- java汉字转拼音maven_汉字转拼音的Java开源类库 – jpinyin
jpinyin – A opensource java library for converting chinese to pinyin JPinyin是一个汉字转拼音的Java开源类库,在PinYi ...
- Java 汉字转拼音 Scala 汉字转拼音
汉字转拼音 Maven引用 <dependency><groupId>com.belerweb</groupId><artifactId>pinyin4 ...
最新文章
- Gut: 妊娠期糖尿病与孕妇及其新生儿微生物菌群失调有关(赵方庆作品)
- validator API文档
- Chrome 插件开发-桌面通知设置实战演示,设置通知显示、存在时间
- sap中Excel的模版上传和下载
- SAP Spartacus B2B User 页面的数据读取逻辑设计
- outlook存档邮件_如何在Outlook 2013中存档电子邮件
- Egg Node.js 从小工坊走向企业级开发 #20
- Android 进度条改变图片透明度
- 程序猿提升自己水平的方法
- OpenCV-绘制箭头cv::arrowedLine
- 服务器设置站点网站为本地IP
- 091118 T 数组的继承
- 4.10验证码(抠图)和超级鹰的使用
- 安全合规/法案--36--《个人信息保护法》原文及解读
- 中国工科研究生200多篇英文论文中最常见的习惯(The Most Common Habits from more than 200 English Papers written by Gradua)
- Python ftp 下载AHI数据
- Mybatis(一)Mybatis的基本使用
- Cannot use import statement outside a module
- u盘一插上计算机就不响应,u盘插上没反应解决方法
- EF中的EntityState几个状态的说明
热门文章
- python爬虫+mongodb+matlab彩票抓取
- 【MySQL数据库】MySQL的卸载
- 《软件测试》第五章 带上眼罩测试软件
- PHP实现百度人脸识别
- 漫画 | 我在大厂做外包
- 战神开发者gm工具MYSQL配置_第十五讲 战神引擎GM号增加和命令使用
- CAD的一些常用命令
- OSError: Could not find lib c or load any of its variants [].
- 对话极客修CEO吴玮:线上线下融合将催生旗舰型维修服务平台
- 使用 IBM Network Advisor 监视 SAN 交换机性能