Java汉字转成汉语拼音工具类
程序员文章站
2024-02-23 19:18:34
java汉字转成汉语拼音工具类,需要用到pinyin4j.jar包.
import net.sourceforge.pinyin4j.pinyinhelper;...
java汉字转成汉语拼音工具类,需要用到pinyin4j.jar包.
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 hanyupinyinhelper { /** * 将文字转为汉语拼音 * @param chineselanguage 要转成拼音的中文 */ public string tohanyupinyin(string chineselanguage){ char[] cl_chars = chineselanguage.trim().tochararray(); string hanyupinyin = ""; hanyupinyinoutputformat defaultformat = new hanyupinyinoutputformat(); defaultformat.setcasetype(hanyupinyincasetype.lowercase);// 输出拼音全部小写 defaultformat.settonetype(hanyupinyintonetype.without_tone);// 不带声调 defaultformat.setvchartype(hanyupinyinvchartype.with_v) ; try { for (int i=0; i<cl_chars.length; i++){ if (string.valueof(cl_chars[i]).matches("[\u4e00-\u9fa5]+")){// 如果字符是中文,则将中文转为汉语拼音 hanyupinyin += pinyinhelper.tohanyupinyinstringarray(cl_chars[i], defaultformat)[0]; } else {// 如果字符不是中文,则不转换 hanyupinyin += cl_chars[i]; } } } catch (badhanyupinyinoutputformatcombination e) { system.out.println("字符不能转成汉语拼音"); } return hanyupinyin; } public static string getfirstlettersup(string chineselanguage){ return getfirstletters(chineselanguage ,hanyupinyincasetype.uppercase); } public static string getfirstletterslo(string chineselanguage){ return getfirstletters(chineselanguage ,hanyupinyincasetype.lowercase); } public static string getfirstletters(string chineselanguage,hanyupinyincasetype casetype) { char[] cl_chars = chineselanguage.trim().tochararray(); string hanyupinyin = ""; hanyupinyinoutputformat defaultformat = new hanyupinyinoutputformat(); defaultformat.setcasetype(casetype);// 输出拼音全部大写 defaultformat.settonetype(hanyupinyintonetype.without_tone);// 不带声调 try { for (int i = 0; i < cl_chars.length; i++) { string str = string.valueof(cl_chars[i]); if (str.matches("[\u4e00-\u9fa5]+")) {// 如果字符是中文,则将中文转为汉语拼音,并取第一个字母 hanyupinyin += pinyinhelper.tohanyupinyinstringarray(cl_chars[i], defaultformat)[0].substring(0, 1); } else if (str.matches("[0-9]+")) {// 如果字符是数字,取数字 hanyupinyin += cl_chars[i]; } else if (str.matches("[a-za-z]+")) {// 如果字符是字母,取字母 hanyupinyin += cl_chars[i]; } else {// 否则不转换 hanyupinyin += cl_chars[i];//如果是标点符号的话,带着 } } } catch (badhanyupinyinoutputformatcombination e) { system.out.println("字符不能转成汉语拼音"); } return hanyupinyin; } public static string getpinyinstring(string chineselanguage){ char[] cl_chars = chineselanguage.trim().tochararray(); string hanyupinyin = ""; hanyupinyinoutputformat defaultformat = new hanyupinyinoutputformat(); defaultformat.setcasetype(hanyupinyincasetype.lowercase);// 输出拼音全部大写 defaultformat.settonetype(hanyupinyintonetype.without_tone);// 不带声调 try { for (int i = 0; i < cl_chars.length; i++) { string str = string.valueof(cl_chars[i]); if (str.matches("[\u4e00-\u9fa5]+")) {// 如果字符是中文,则将中文转为汉语拼音,并取第一个字母 hanyupinyin += pinyinhelper.tohanyupinyinstringarray( cl_chars[i], defaultformat)[0]; } else if (str.matches("[0-9]+")) {// 如果字符是数字,取数字 hanyupinyin += cl_chars[i]; } else if (str.matches("[a-za-z]+")) {// 如果字符是字母,取字母 hanyupinyin += cl_chars[i]; } else {// 否则不转换 } } } catch (badhanyupinyinoutputformatcombination e) { system.out.println("字符不能转成汉语拼音"); } return hanyupinyin; } /** * 取第一个汉字的第一个字符 * @title: getfirstletter * @description: todo * @return string * @throws */ public static string getfirstletter(string chineselanguage){ char[] cl_chars = chineselanguage.trim().tochararray(); string hanyupinyin = ""; hanyupinyinoutputformat defaultformat = new hanyupinyinoutputformat(); defaultformat.setcasetype(hanyupinyincasetype.uppercase);// 输出拼音全部大写 defaultformat.settonetype(hanyupinyintonetype.without_tone);// 不带声调 try { string str = string.valueof(cl_chars[0]); if (str.matches("[\u4e00-\u9fa5]+")) {// 如果字符是中文,则将中文转为汉语拼音,并取第一个字母 hanyupinyin = pinyinhelper.tohanyupinyinstringarray( cl_chars[0], defaultformat)[0].substring(0, 1);; } else if (str.matches("[0-9]+")) {// 如果字符是数字,取数字 hanyupinyin += cl_chars[0]; } else if (str.matches("[a-za-z]+")) {// 如果字符是字母,取字母 hanyupinyin += cl_chars[0]; } else {// 否则不转换 } } catch (badhanyupinyinoutputformatcombination e) { system.out.println("字符不能转成汉语拼音"); } return hanyupinyin; } public static void main(string[] args) { hanyupinyinhelper hanyupinyinhelper = new hanyupinyinhelper() ; system.out.println(hanyupinyinhelper.tohanyupinyin("多发的发独守空房阿道夫打发第三方")); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
上一篇: Python中int()函数的用法浅析
下一篇: mysql常用函数汇总(分享)