Java汉字转成汉语拼音工具类

发布时间 - 2026-01-11 01:07:27    点击率:

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("多发的发独守空房阿道夫打发第三方"));
  }
}

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


# java汉字转成拼音工具类  # java汉字转成汉语拼音  # java汉字转成拼音  # java中将汉字转换成拼音的实现代码  # JAVA实现汉字转拼音功能代码实例  # Java汉字转拼音pinyin4j用法详解  # Java实现将汉字转化为汉语拼音的方法  # java实现汉字转拼音  # Java汉字转拼音工具类完整代码实例  # Java汉字转拼音案例详解  # Java汉字转换拼音(大小写)实例详解  # 第一个  # 转成  # 不带  # 则将  # 带着  # 第三方  # 多发  # 大家多多  # 独守  # 阿道夫  # toHanyuPinyin  # HanyuPinyinHelper  # public  # param  # chineselanguage  # String 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel怎么上传文件_Laravel图片上传及存储配置  如何在阿里云虚拟主机上快速搭建个人网站?  Windows10如何删除恢复分区_Win10 Diskpart命令强制删除分区  今日头条AI怎样推荐抢票工具_今日头条AI抢票工具推荐算法与筛选【技巧】  Laravel如何编写单元测试和功能测试?(PHPUnit示例)  浅谈Javascript中的Label语句  laravel怎么在请求结束后执行任务(Terminable Middleware)_laravel Terminable Middleware请求结束任务执行方法  Laravel如何实现用户密码重置功能?(完整流程代码)  Laravel怎么判断请求类型_Laravel Request isMethod用法  Laravel如何使用Eloquent进行子查询  Laravel安装步骤详细教程_Laravel环境搭建指南  Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程  在Oracle关闭情况下如何修改spfile的参数  北京专业网站制作设计师招聘,北京白云观官方网站?  Python文件操作最佳实践_稳定性说明【指导】  Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制  Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】  如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)  小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像  香港服务器建站指南:免备案优势与SEO优化技巧全解析  网站优化排名时,需要考虑哪些问题呢?  文字头像制作网站推荐软件,醒图能自动配文字吗?  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  如何制作一个表白网站视频,关于勇敢表白的小标题?  怎么用AI帮你为初创公司进行市场定位分析?  C++时间戳转换成日期时间的步骤和示例代码  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  微信小程序 闭包写法详细介绍  香港网站服务器数量如何影响SEO优化效果?  Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】  Laravel怎么实现验证码(Captcha)功能  安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出  Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  Python文件异常处理策略_健壮性说明【指导】  linux写shell需要注意的问题(必看)  太平洋网站制作公司,网络用语太平洋是什么意思?  如何在建站之星绑定自定义域名?  Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】  如何破解联通资金短缺导致的基站建设难题?  使用豆包 AI 辅助进行简单网页 HTML 结构设计  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  如何在IIS中新建站点并解决端口绑定冲突?  JavaScript数据类型有哪些_如何准确判断一个变量的类型  Laravel如何与Pusher实现实时通信?(WebSocket示例)  Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面  实现点击下箭头变上箭头来回切换的两种方法【推荐】  Laravel如何使用Blade模板引擎?(完整语法和示例)  javascript基本数据类型及类型检测常用方法小结  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?