汉字转换成拼音、汉字获取每个字首字母行程助记码的工具,附详细用法

效果展示

//获取汉字拼音,可带字母数字,不进行转换
 System.out.println("好好学习"+getPinyin("好好学习"));
 System.out.println("天天向上"+getZJM("天天向上"));

结果

好好学习haohaoxuexi
天天向上TTXS

工具类

  1. 首先导入jar
	<dependency>
         <groupId>com.belerweb</groupId>
         <artifactId>pinyin4j</artifactId>
         <version>2.5.0</version>
   	</dependency>
  1. 代码如下
package com.xxx.util;

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 PinYinUtil {
   /**
    * @param china (字符串 汉字)
    * @return 汉字转拼音 其它字符不变
    */
   public static String getPinyin(String china){
      HanyuPinyinOutputFormat formart = new HanyuPinyinOutputFormat();
      formart.setCaseType(HanyuPinyinCaseType.LOWERCASE);
      formart.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
      formart.setVCharType(HanyuPinyinVCharType.WITH_V);
      char[] arrays = china.trim().toCharArray();
      String result = "";
      try {
         for (int i=0;i<arrays.length;i++) {
            char ti = arrays[i];
            if(Character.toString(ti).matches("[\\u4e00-\\u9fa5]")){ //匹配是否是中文
               String[] temp = PinyinHelper.toHanyuPinyinStringArray(ti,formart);
               result += temp[0];
            }else{
               result += ti;
            }
//            System.out.println(result);
         }
      } catch (BadHanyuPinyinOutputFormatCombination e) {
         e.printStackTrace();
      }

      return result;
   }

   /**
    * 获取助记码
    * @param china
    * @return
    */
   public static String getZJM(String china){
      HanyuPinyinOutputFormat formart = new HanyuPinyinOutputFormat();
      formart.setCaseType(HanyuPinyinCaseType.LOWERCASE);
      formart.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
      formart.setVCharType(HanyuPinyinVCharType.WITH_V);
      char[] arrays = china.trim().toCharArray();
      String result = "";
      String ZJM = "";
      try {
         for (int i=0;i<arrays.length;i++) {
            char ti = arrays[i];
            if(Character.toString(ti).matches("[\\u4e00-\\u9fa5]")){ //匹配是否是中文
               String[] temp = PinyinHelper.toHanyuPinyinStringArray(ti,formart);
               result = temp[0];
               String substring = (String) result.subSequence(0,1);
               ZJM+=substring;
            }else{
               ZJM += ti;
            }
         }
      } catch (BadHanyuPinyinOutputFormatCombination e) {
         e.printStackTrace();
      }

      return ZJM.toUpperCase();
   }
}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

XuDream

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值