栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

添加依赖


      com.belerweb
      pinyin4j
      2.5.1

工具类代码:

public class PinYinUtils {

  public static HanyuPinyinOutputFormat PINYIN_FORMAT;
  static {

    PINYIN_FORMAT = new HanyuPinyinOutputFormat();
    
    PINYIN_FORMAT.setCaseType(HanyuPinyinCaseType.LOWERCASE);
    
    PINYIN_FORMAT.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
    
    PINYIN_FORMAT.setVCharType(HanyuPinyinVCharType.WITH_U_UNICODE);
  }

  
  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();
  }

  
  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();
  }
  
  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);
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/134770.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号