当前位置: 代码迷 >> 综合 >> 汉字转拼音,
  详细解决方案

汉字转拼音,

热度:31   发布时间:2023-10-17 19:47:10.0
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();
    }
 

  相关解决方案