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

网友投稿 266 2023-02-27

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

  &http://nbsp;     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(getPiblcbJzeqpOnYinHeaderChar("海贼王"));

    }

}

4.效果展示

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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:历史被执行人
下一篇:IP接口
相关文章

 发表评论

暂时没有评论,来抢沙发吧~