Java 汉字获取拼音或首字母工具类代码分析

网友投稿 320 2023-01-05

Java 汉字获取拼音或首字母工具类代码分析

本文主要介绍java中,将字符串中的中文转化为拼音,获取汉字串拼音首字母,获取汉字串拼音的工具类,以及相关的示例代码。

1、Maven依赖配置(pom.xml)

http://

com.belerweb

pinyin4j

2.5.1

2、工具类代码

package com.cjavapy.utils.util;

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.BadHanyuPinyinOutputFormatCombination;

/**

* 拼音工具类

*/

public class PinYinUtil {

/**

* 将字符串中的中文转化为拼音,其他字符不变

*

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

char[] input = inputString.trim().toCharArray();

String output = "";

try {

for (int i = 0; i < input.length; i++) {

if (java.lang.Character.toString(input[i]).matches("[\\u4E00-\\u9FA5]+")) {

String[] temp = PinyinHelper.toHanyuPinyinStringArray(input[i], format);

output += temp[0];

} else

output += java.lang.Character.toString(input[i]);

}

} catch (BadHanyuPinyinOutputFormatCombination e) {

e.printStackTrace();

}

return output;

}

/**

* 获取汉字串拼音首字母,英文字符不变

* @param chinese 汉字串

* @return 汉语拼音首字母

*/

public static String getFirstSpell(String chinese) {

StringBuffer pybf = new StringBuffer();

char[] arr = chinese.toCharArray();

HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();

defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);

defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);

for (int i = 0; i < arr.length; i++) {

if (arr[i] > 128) {

try {

String[] temp = PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat);

if (temp != null) {

pybf.append(temp[0].charAt(0));

}

} catch (BadHanyuPinyinOutputFormatCombination e) {

e.printStackTrace();

}

} else {

pybf.append(arr[i]);

}

}

return pybf.toString().replaceAll("\\W", "").trim();

}

/**

* 获取汉字串拼音,英文字符不变

* @param chinese 汉字串

* @return 汉语拼音

*/

public static String getFullSpell(String chinese) {

StringBuffer pybf = new StringBuffer();

char[] arr = chinese.toCharArray();

HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();

defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);

defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);

for (int i = 0; i < arr.length; i++) {

if (arr[i] > 128) {

try {

pybf.append(PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat)[0]);

} catch (BadHanyuPinyinOutputFormatCombination e) {

e.printStackTrace();

}

} else {

pybf.append(arr[i]);

}

}

return pybf.toString();

}

}

实例扩展:

import net.sourceforge.pinyin4j.PinyinHelper;

public class PinyinHelperUtil {

/**

* 得到中文首字母(中国 -> ZG)

* @param str 需要转化的中文字符串

* @return 大写首字母缩写的字符串

*/

public static String getPinYinHeadChar(String str) {

StringBuilder convert = new StringBuilder();

for (int j = 0; j < str.length(); j++) {

char word = str.charAt(j);

String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(word);

if (pinyinArray != null) {

convert.append(pinyinArray[0].charAt(0));

} else {

convert.append(word);

}

}

return convert.toString().toUpperCase();

}

}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:SpringBoot部署到Linux读取resources下的文件及遇到的坑
下一篇:调用api接口实例教程(调用api接口实例教程视频)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~