汉字转拼音,

1,需要的的jar
        <dependency>
            <groupId>com.belerweb</groupId>
            <artifactId>pinyin4j</artifactId>
            <version>2.5.1</version>
        </dependency>
2,代码

import lombok.extern.slf4j.Slf4j;
import net.sourceforge.pinyin4j.PinyinHelper;
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;

/**
 *  汉字转拼音
 * @author chenye
 * 2018年10月19日
 */
@Slf4j
public class PinyinUtil {

   public static String pinyin(String input) {
      StringBuilder pinyin = new StringBuilder();
        for (int i = 0; i < input.length(); i++) {
            HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
            defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
            defaultFormat.setVCharType(HanyuPinyinVCharType.WITH_V);
            char c = input.charAt(i);
            String[] pinyinArray = null;
            try {
                pinyinArray = PinyinHelper.toHanyuPinyinStringArray(c, defaultFormat);
            } catch (BadHanyuPinyinOutputFormatCombination e) {
                e.printStackTrace();
            }
            if (pinyinArray != null && pinyinArray.length>0) {
                pinyin.append(pinyinArray[0]);
            } else if (c != ' ') {
                pinyin.append(input.charAt(i));
            }
        }
        return pinyin.toString().trim().toLowerCase();
   }
   public static void main(String[] args) {
      log.debug(pinyin("张三1"));
   }
   
}

    public static String pingyin(String input) {
         StringBuilder pinyin = new StringBuilder();
            for (int i = 0; i < input.length(); i++) {
                HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
                defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
                defaultFormat.setVCharType(HanyuPinyinVCharType.WITH_V);
                char c = input.charAt(i);
                String[] pinyinArray = null;
                try {
                    pinyinArray = PinyinHelper.toHanyuPinyinStringArray(c, defaultFormat);
                } catch (BadHanyuPinyinOutputFormatCombination e) {
                    e.printStackTrace();
                }
                if (pinyinArray != null) {
                    pinyin.append(pinyinArray[0]);
                } else if (c != ' ') {
                    pinyin.append(input.charAt(i));
                }
            }
            return pinyin.toString().trim().toLowerCase();
    }
 

猜你喜欢

转载自blog.csdn.net/qq_34874784/article/details/84306342