java 汉字转换为拼音 简码 及全拼音
只需要一个pinyin4j-2.5.0 目前新版本
下载地址:http://download.csdn.net/download/m0_37828590/9809067
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;/**
* @className:PinyingUtil.java
* @classDescription:拼音操作工具类
*/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
*/
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) {
// TODO Auto-generated catch block
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 getGBKpy(String hz) {
System.out.println("---------------------------"+stringArrayToString(getHeadByString(hz)));
System.out.println("++++++++++++++++++++++++++++"+hanziToPinyin(hz));
}}
java 汉字转换为拼音 简码 及全拼音相关推荐
- java 汉子转换为拼音 简码 及全拼音
只需要一个pinyin4j-2.5.0 目前新版本 下载地址:http://pinyin4j.sourceforge.net/ import net.sourceforge.pinyin4j.Piny ...
- java 汉字转换为拼音
需要引入pinyin4j , 没有文件上传,pinyin4j 上传不上来 import java.io.UnsupportedEncodingException; import net.source ...
- Java 汉字转换为拼音字符串
本文本着学习分享的目的,介绍一种基于java.text.Collator的比较挫的方法,实现汉字转换为拼音字符串.当然我得暂时不考虑汉字多音字的问题.最终结果是这样: 吃 -> CHI 睡 ...
- 【Orcale】------- Orcale 实现中文转拼音/缩写大小写/全拼音大小写
1.需要在orcale里面导入一下sql; oracle汉字转拼音 ORACLE中文转拼音缩写.sql(35.9 KB) 链接:https://pan.baidu.com/s/12hGCAzT5YTm ...
- java汉字转换为拼音首字母
使用 pinyin4j 2.5.0.jar 进行解决.封装了一个工具类 package com.util;import net.sourceforge.pinyin4j.PinyinHelper; i ...
- java汉字转换为拼音
java实现汉字转换拼音可以利用pinyin4j实现 1.加jar包: <dependency><groupId>com.belerweb</groupId>< ...
- java 中文转成_Java实现汉字转换为拼音 [转]
代码说明: Java实现汉字转换为拼音的GUI版本. GUI代码部分: /** * @(#)CnToSpellGUI.java * kindani * 2004-10-25?? * */ import ...
- java 汉字转换全拼、首字母拼音
最近接到需求,要求商城中进行半模糊搜索时,输入拼音字母同样要求进行自动匹配出相关品牌.类目.关键词等数据,从而进行筛选商品 本片内容只记录汉字转换拼音 方案一:在mysql数据库中编写函数,此方法存在 ...
- java 实现汉字转换拼音_Java实现汉字转换为拼音
# re: Java实现汉字转换为拼音 2006-11-24 15:06 芦苇 JAVA将汉字转化成拼音的方法 /** *//** ################################## ...
最新文章
- R语言ggplot2可视化(facet图)使得第一个子图的坐标轴范围一致
- mysql给数据做排名_mysql给数据统计做排名
- 【设计模式】策略模式 ( 简介 | 适用场景 | 优缺点 | 代码示例 )
- strstr c语言字符串,C字符串处理strstr, strindex
- micropython开发idethonny_ESP32 Micropython开发利器Thonny IDE介绍
- android 显示进度的按钮
- android 手势事件 重写,Android实现通过手势控制图片大小缩放的方法
- sunday java_Sunday算法:最快的字符串匹配算法
- 求数组中数对的最大值
- **print('人生苦短 我爱Python')**
- 技术动态 | 知识可视化,连接和探究知识之间的联系!
- gensim将python dict字典形式的词向量导入到word2vec模型(同时适合gensim4.0+版本)
- Spring实战基础1
- ArcGIS学习总结(15)——影像空缺值蚕食填充批处理(Nibble)
- 宠物商店管理系统php,宠物店管理系统
- 【Redis】Redis各个版本的下载安装教程
- 新手如何建立网站,网站建设的几个步骤。
- 在网络世界中我们该如何保护我们的信息安全?
- Python保留指定位数的小数
- 实现一个数据流中,随时可以取得中位数
热门文章
- 1. 空中手写字符识别(手指)
- 计算机给文字填充颜色,word2010画图板给部分区域添加颜色 word怎么填充区域颜色...
- PLC和单片机的区别
- linux自己制作卸载u盘程序,linux挂载和卸载U盘
- 听听八年阿里架构师怎样讲述Dubbo和Spring Cloud微服务架构
- openoffice安装
- 2021-2027全球与中国单相电能表市场现状及未来发展趋势
- android studio build variants,Android studio构建App的不同variants和types
- 关于应用~试玩,你想知道的都在这儿了----超详细总结(下篇)
- QQ浏览器怎么调整HTML5,QQ浏览器怎么设置默认浏览器