需要用的jar包pinyin4j-2.5.0.jar
- package com.itheima.log.demo;
- import java.util.Scanner;
- 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 Demo01 {
- public static void main(String[] args) {
- while(true){
- System.out.println("请输入中文字符。(退出输入exit)");
- //1.接收要翻译为拼音的字符串
- Scanner scanner = new Scanner(System.in);
- String zhongwen = scanner.nextLine();
- if(zhongwen.toLowerCase().equals("exit")){
- break;
- }
- //接收中文字符转换后的拼音
- String pinyin = getPinYin(zhongwen);
- //打印输出
- System.out.println(pinyin);
- }
- }
- /**
- *
- * 方法描述:中文转换拼音
- * 修改时间:2014-9-21下午05:02:02
- * 修改备注:
- * @param zhongwen 中文字符
- * @return 转换后拼音字符
- */
- private static String getPinYin(String zhongwen) {
- //2.定义char[]数组接收字符串转换后的数组
- char[] chs = zhongwen.toCharArray();
- //3.定义String[]数组接收单个汉字转换后的拼音
- String[] pinyin = new String[1];
- //4.定义将转换后的拼音拼接到convert字符串变量中
- StringBuffer convert = new StringBuffer();
- try {
- //5.设置汉字拼音输出的格式
- HanyuPinyinOutputFormat hpof = new HanyuPinyinOutputFormat();
- hpof.setCaseType(HanyuPinyinCaseType.LOWERCASE); //设置大小写格式为:小写
- hpof.setToneType(HanyuPinyinToneType.WITHOUT_TONE); //设置声调格式为:无声调表示
- hpof.setVCharType(HanyuPinyinVCharType.WITH_V); //设置特殊拼音ü的显示格式为:以V表示该字符,例如:lv
-
- for(int i=0;i<chs.length;i++){
- //6.判断是否为中文字符,如果是则转换为拼音,然后将拼音拼接到convert变量中
- if(Character.toString(chs[i]).matches("[\\u4E00-\\u9FA5]+")){
- pinyin = PinyinHelper.toHanyuPinyinStringArray(chs[i],hpof);
- convert.append(pinyin[0]+" ");
- //7.如果不是,直接将该字符拼接到convert变量中
- }else {
- convert.append(Character.toString(chs[i]));
- }
- }
- } catch (BadHanyuPinyinOutputFormatCombination e) {
- e.printStackTrace();
- }
- return convert.toString();
- }
- }
复制代码
|
|