JAVA将“中文”转化为“拼英”
作者:互联网
一、 需要用到:pinyin4j-2.5.0.jar 包。获取链接:https://pan.baidu.com/s/17urMCVcnWVBzjmKFfFX6Mw 提取码:9e6v
二、 将 pinyin4j-2.5.0.jar 导入到 Eclipse 的项目中,步骤如下:
选择添加
找到 jar 包的路径,打开即可
成功添加
三、 下面附上工具类 ChineseToEnglish 的代码
/* * 工具类:ChineseToEnglish,需要导入 pinyin4j-2.5.0.jar 包 * 调用方式:ChineseToEnglish.getFullSpell(姓名); */ 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; public class ChineseToEnglish { /** * 获取汉字串拼音首字母,英文字符不变 * @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 java.util.Scanner; public class Main { public static void main(String[] args) { Scanner read = new Scanner(System.in); while(true) { String str=read.nextLine(); System.out.print("姓名全拼:"); System.out.println(ChineseToEnglish.getFullSpell(str)); System.out.print("姓名首字母:"); System.out.println(ChineseToEnglish.getFirstSpell(str)); } } }
运行结果如下:
标签:中文,JAVA,String,chinese,拼英,pinyin4j,arr,defaultFormat,pybf 来源: https://www.cnblogs.com/Gzu_zb/p/10779001.html