java 根据汉字生成拼音全拼或拼音首字母的示例

 更新时间:2020年11月02日 09:45:03   作者:Marydon  
这篇文章主要介绍了java 根据汉字生成拼音全拼或拼音首字母的示例,帮助大家更好的利用Java处理数据,感兴趣的朋友可以了解下

1.情景展示

  java 根据中文生成对应的拼音 

2.准备工作

  所需jar包:pinyin4j-2.5.0.jar   

3.解决方案

  导包

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;

  代码实现

/**
 * 根据汉字生成拼音全拼或拼音首字母
 * @explain
 * @author Marydon
 * @creationTime 2020年5月14日下午4:26:30
 * @version 1.0
 * @since
 * @email marydon20170307@163.com
 */
public class GetPinyin {
    /**
     * 得到全拼
     * @param str
     * @return 全拼(小写)
     */
    public static String getPinYin(String str){
        char t1[]=null;
        t1=str.toCharArray();
        String[] t2=new String[t1.length];
        HanyuPinyinOutputFormat t3=new HanyuPinyinOutputFormat();
        t3.setCaseType(HanyuPinyinCaseType.LOWERCASE);
        t3.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
        t3.setVCharType(HanyuPinyinVCharType.WITH_V);
        String t4="";
        int t0=t1.length;
        try {
            for ( int i = 0; i < t0; i++ ) {
                //是用来判断是不是中文的一个条件,采用的是unicode编码
                if(Character.toString(t1[i]).matches("[\\u4E00-\\u9FA5]+")){
                    t2= PinyinHelper.toHanyuPinyinStringArray(t1[i],t3);
                    t4+=t2[0];
                }else {
                    t4+=Character.toString(t1[i]);
                }
            }
            return t4;
        } catch ( BadHanyuPinyinOutputFormatCombination badHanyuPinyinOutputFormatCombination ) {
            badHanyuPinyinOutputFormatCombination.printStackTrace();
        }
        return t4;
    }
 
    /**
     * 得到汉字首字母的拼音
     * @param str
     * @return 拼音首字母(大写)
     */
    public static String getPinYinHeaderChar(String str){
        String convert="";
        for ( int i = 0; i < str.length(); i++ ) {
            char word=str.charAt(i);
            String[] pinYinArray=PinyinHelper.toHanyuPinyinStringArray(word);
            if ( pinYinArray!=null ){
                convert+=pinYinArray[0].charAt(0);
            }else {
                convert+=word;
            }
        }
        return convert.toUpperCase();
    }
 
  //测试
    public static void main(String[] args) {
        System.out.println(getPinYin("火影忍者Marydon"));
        System.out.println(getPinYinHeaderChar("海贼王"));
    }
}

4.效果展示 

以上就是java 根据汉字生成拼音全拼或拼音首字母的示例的详细内容,更多关于Java 汉字生成拼音的资料请关注脚本之家其它相关文章!

相关文章

  • Java8的Lambda和排序

    Java8的Lambda和排序

    这篇文章主要介绍了Java8的Lambda和排序,对数组和集合进行排序是Java 8 lambda令人惊奇的一个应用,我们可以实现一个Comparators来实现各种排序,下面文章将有案例详细说明,想要了解得小伙伴可以参考一下
    2021-11-11
  • Java如何读写Properties配置文件(Properties类)

    Java如何读写Properties配置文件(Properties类)

    这篇文章主要介绍了Java如何读写Properties配置文件(Properties类),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • Java的字符串常量池StringTable详解

    Java的字符串常量池StringTable详解

    这篇文章主要介绍了Java的字符串常量池StringTable详解,JVM为了提高性能和减少内存开销,在实例化字符串常量的时候进行了一些优化,为 了减少在JVM中创建的字符串的数量,字符串类维护了一个字符串池,需要的朋友可以参考下
    2023-11-11
  • Java中如何判断线程池任务已执行完成

    Java中如何判断线程池任务已执行完成

    这篇文章主要介绍了Java中如何判断线程池任务已执行完成,文章围绕主题展开详细相关资料,具有一定的参考价值需要的小伙伴可以参考以参考一下
    2022-05-05
  • SpringBoot进行Web开发的实现

    SpringBoot进行Web开发的实现

    Spring Boot让我们可以快速构建项目并运行web应用,大大简化了Spring的复杂配置,本文主要介绍了SpringBoot进行Web开发的实现,感兴趣的可以了解一下
    2023-10-10
  • Java中的数组复制(clone与arraycopy)代码详解

    Java中的数组复制(clone与arraycopy)代码详解

    这篇文章主要介绍了Java中的数组复制(clone与arraycopy)代码详解,本文并未全部介绍数组复制的几种方式,仅对clone和copy的相关内容进行了解析,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • Spring 自动装配的二义性实例解析

    Spring 自动装配的二义性实例解析

    这篇文章主要介绍了Spring 自动装配的二义性实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • Java通过Freemarker模板实现生成Word文件

    Java通过Freemarker模板实现生成Word文件

    FreeMarker是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本的通用工具。本文将根据Freemarker模板实现生成Word文件,需要的可以参考一下
    2022-09-09
  • Java之HashMap案例详解

    Java之HashMap案例详解

    这篇文章主要介绍了Java之HashMap案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • maven profile自动切换环境参数的2种方法详解

    maven profile自动切换环境参数的2种方法详解

    这篇文章主要给大家介绍了关于maven profile自动切换环境参数的2种方法,文中通过示例代码将这两种方法介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-04-04

最新评论