根据汉语字符串获得对应的拼音字符串或者拼音首字母字符串等操作

Java 根据汉语字符串获得对应的拼音字符串或者拼音首字母字符串等操作,需要添加jar包: pinyin4j-2.5.0
下载地址:http://download.csdn.net/download/yangwang213/10031201
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;  import java.io.FileNotFoundException; import java.io.IOException; import java.io.ObjectInputStream; import java.util.Map; /**  * 拼音工具  * @author xx */  public class PinyinToolkit { 
        /**           * 获取汉字串拼音首字母,英文字符不变           *           * @param chinese 汉字串           * @return 汉语拼音首字母           */          public static String cn2FirstSpell(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[] _t = PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat);                                          if (_t != null) {                                                  pybf.append(_t[0].charAt(0));                                          }                                  } catch (BadHanyuPinyinOutputFormatCombination e) {                                   return "";                                 }                          } else {                                  pybf.append(arr[i]);                          }                  }                  return pybf.toString().replaceAll("\\W", "").trim();          } 
        /**           * 获取汉字串拼音,英文字符不变           *           * @param chinese 汉字串           * @return 汉语拼音           */          public static String cn2Spell(String chinese) {          if(chinese==null || chinese.equals("")){         return "";         }else{         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[] str=PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat);                                     if(str==null || str.length==0){                                      break;                                     }                                         pybf.append(PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat)[0]);                                  } catch (BadHanyuPinyinOutputFormatCombination e) {                                  break;                                 }                          } else {                                  pybf.append(arr[i]);                          }                  }                  return pybf.toString();          }             }          
        /** 
         * 测试程序          */      public static void main(String[] args) {     String cnStr = "中华人民共和国";     System.out.println("汉字串首字母:"+cn2Spell(cnStr));     System.out.println("汉字串拼音:"+cn2FirstSpell(cnStr));     } }


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部