Java汉字转拼音工具类完整代码实例

网友投稿 397 2022-12-11


Java汉字转拼音工具类完整代码实例

添加依赖

com.belerweb

pinyin4j

2.5.1

工具类代码:

public class PinYinUtils {

public static HanyuPinyinOutputFormat PINYIN_FORMAT;

static {

PINYIN_FORMAT = new HanyuPinyinOutputFormat();

/**

* 大小写设置

* LOWERCASE:小写

* UPPERCASE:大写

*/

PINYIN_FORMAT.setCaseType(HanyuPinyinCaseType.LOWERCASE);

/**

* 输出音标设置

*

* WITH_TONE_MARK:直接用音标符(VCharType必须设置WITH_U_UNICODE,否则会抛出异常)

* WITH_TONE_NUMBER:1-4数字表示音标

* WITHOUT_TONE:没有音标

*/

PINYIN_FORMAT.setToneType(HanyuPinyinToneType.WITHOUT_TONE);

/**

* 特殊音符的设置

* WITH_U_AND_COLON:用u表示(没有设置默认用u表示)

* WITH_V:用v表示

* WITH_U_UNICODE:用表示

*/

PINYIN_FORMAT.setVCharType(HanyuPinyinVCharType.WITH_U_UNICODE);

}

/**

* 取汉字的拼音首字母

* @param chinese

* @return

*/

public static String toFirstPinYin(String chinese){

StringBuilder result = new StringBuilder();

//将字符串转成字符数组

char[] chars = chinese.toCharArray();

try {

for (char c : chars) {

//是中文则进行转换

if(String.valueOf(c).matches("[\u4e00-\u9fa5]+")){

String[] pinyinStr = PinyinHelper.toHanyuPinyinStringArray(c, PINYIN_FORMAT);

result.append(pinyinStr[0].charAt(0));//取每个中文的第一个拼音字母

}else {

result.append(c);

}

}

} catch (BadHanyuPinyinOutputFormatCombination badHanyuPinyinOutputFormatCombination) {

badHanyuPinyinOutputFormatCombination.printStackTrace();

}

return result.toString();

}

/**

* 汉字转拼音小写

* @param chinese

* @return

*/

public static String toPinYin(String chinese){

//创建返回对象

StringBuilder result = new StringBuilder();//方法调用的时候新建,对象没有共享,不会有线程安全问题。

//将字符串转成字符数组

char[] chars = chinese.toCharArray();

try {

for (char c : chars) {

//是中文则进行转换

if(String.valueOf(c).matches("[\u4e00-\u9fa5]+")){

String[] pinyinStr = PinyinHelper.toHanyuPinyinStringArray(c, PINYIN_FORMAT);

// result.append(pinyinStr[0].charAt(0));//取每个中文的第一个拼音字母

result.append(pinyinStr[0]);

}else {

result.append(c);

}

}

} catch (BadHanyuPinyinOutputFormatCombination badHanyuPinyinOutputFormatCombination) {

badHanyuPinyinOutputFormatCombination.printStackTrace();

}

return result.toString();

}

/**

* 汉字转拼音每个字符串的第一个字母大写其余小写

* @param chinese

* @return

*/

public static String toUpperStringsFirstCharPinYin(String chinese){

//创建返回对象

StringBuilder result = new StringBuilder();//方法调用的时候新建,对象没有共享,不会有线程安全问题。

//将字符串转成字符数组

char[] chars = chinese.toCharArray();

try {

for (char c : chars) {

//是中文则进行转换

if(String.valueOf(c).matches("[\u4e00-\u9fa5]+")){

String[] pinyinStr = PinyinHelper.toHanyuPinyinStringArray(c, PINYIN_FORMAT);

// result.append(pinyinStr[0].charAt(0));//取每个中文的第一个拼音字母

String c1 = String.valueOf(pinyinStr[0]);

result.append(c1.substring(0,1).toUpperCase()).append(c1.substring(1));

}else {

result.append(c);

}

}

} catch (BadHanyuPinyinOutputFormatCombination badHanyuPinyinOutputFormatCombination) {

badHanyuPinyinOutputFormatCombination.printStackTrace();

}

return result.toString();

}

public static void main(String[] args) {

//测试StringBuilder是否有线程安全问题

String str = "拼音工具lv";

String pinYin = toUpperStringsFirstCharPinYin(str);

System.out.println(pinYin);

}

}


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

上一篇:Spring+Http请求+HttpClient实现传参
下一篇:idea与eclipse项目相互导入的过程(图文教程)
相关文章

 发表评论

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