Java中文字转拼音工具类

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Java中文字转拼音工具类

2020-03-24 09:49:09

有时,我们需要将中文汉字转为拼音存储,例如用于检索时,直接输入拼音或者首字母也能检索出我们想要的结果,这时我们便需要将汉字转拼音

•1、首先我们在 pom.xml 文件中引入需要的 maven 依赖

com.belerweb pinyin4j 2.5.1

•2、汉字转拼音工具类代码如下 Pinyin4jUtil.java:

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.HanyuPinyinVCharType; import

net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatComb ination;

/**

–中文转化为拼音工具类

–@author lizhou

–*/ public class Pinyin4jUtil {

/**

•获得汉语拼音首字母大写

•@param chines 汉字

•@return */ public static String getAlpha2UpperCase(String

chines) { String pinyinNam e = "“; char[] nameChar =

chines.toCharArray(); HanyuPinyinOutputFormat defaultFormat

= new HanyuPinyinOutputFormat();

defaultFormat.setCaseType(HanyuPinyinCaseType.UPPERCASE);

defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_T

ONE); for (int i = 0; i < nameChar.length; i++) { if (nameChar[i] >

128) { try { pinyinName +=

PinyinHelper.toHanyuPinyinStringArray(nameChar[i],

defaultFormat)[0].charAt(0); } catch

(BadHanyuPinyinOutputFormatCombination e)

{ System.out.println(”获得汉语拼音首字母异常:}" +

e.getMessage()); } } else { pinyinName += nameChar[i]; } } return

pinyinName; }

/**

•将字符串中的中文转化为拼音,英文字符不变

•@param inputString 汉字

•@return */ public static String getPingYin(String inputString) { HanyuPinyinOutputFormat format = new

HanyuPinyinOutputFormat();

format.setCaseType(HanyuPinyinCaseType.LOWERCASE);

format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);

format.setVCharType(HanyuPinyinVCharType.WITH_V); String

output = "“; if (null != inputString && 0 < inputString.length()

&& !”null“.equals(inputString)) { char[] inpu t =

inputString.trim().toCharArray(); try { for (int i = 0; i <

input.length; i++) { if

(Character.toString(input[i]).matches(”[\u4E00-\u9FA5]+“))

{ String[] temp =

PinyinHelper.toHanyuPinyinStringArray(input[i], format); output += temp[0]; } else { output += Character.toString(input[i]); } } }

catch (BadHanyuPinyinOutputFormatCombination e)

{ System.out.println(”将字符串中的中文转化为拼音,英文字符不

变异常 :" + e.getMessage()); } } else { return ""; } return output; } /**

•汉字转换位汉语拼音首字母,英文字符不变

•@param chines 汉字

•@return 拼音 */ public static String converterToFirstSpell(String chines) { String pinyinName = "“; char[] nameChar =

chines.toCharArray(); HanyuPinyinOutputFormat defaultFormat

= new HanyuPinyinOutputFormat();

defaultFormat.setCaseType(HanyuPinyinCaseType.UPPERCASE);

defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_T

ONE); for (int i = 0; i < nameChar.length; i++) { if (nameChar[i] >

128) { try { pinyinName +=

PinyinHelper.toHanyuPinyinStringArray(nameChar[i],

defaultFormat)[0].charAt(0); } catch

(BadHanyuPinyinOutputFormatCombination e)

{ System.out.println(”汉字转换位汉语拼音首字母,英文字符不

变异常 :" + e.getMessage()); } } else { pinyinName +=

nameChar[i]; } } return pinyinName; }

/**

•汉字转换位汉语拼音首字母,英文字符不变(小写)

•@param chines 汉字

•@return 拼音 */ public static String

converterToFirstSpellSmal(String chines) { String pinyinName =

"“; char[] nameChar = chines.toCharArray();

HanyuPinyinOutputFormat defaultFormat = new

相关文档
最新文档