yeshijie il y a 4 ans
Parent
commit
2458986071

+ 18 - 10
business/base-service/src/main/java/com/yihu/jw/utils/PinYinUtils.java

@ -7,7 +7,6 @@ import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
import org.apache.commons.lang3.StringUtils;
import org.springframework.util.Assert;
import java.util.HashMap;
import java.util.Map;
@ -20,6 +19,12 @@ public class PinYinUtils {
	public static final Map<String, String> multiToneMap = new HashMap<>();
	static {
		multiToneMap.put("重庆", "C");
		multiToneMap.put("广东", "G");
		multiToneMap.put("广西", "G");
	}
	 //将中文转换为英文
	public static String getEname(String name) throws  Exception
    {
@ -83,7 +88,7 @@ public class PinYinUtils {
				String[] temp = PinyinHelper.toHanyuPinyinStringArray(arr[0], defaultFormat);
				// 长度大于1,表明是多音字,往后多取一个字或两个字,取词组,取匹配多音字属性文件确定最终读音
				if (temp != null && temp.length > 1 && !temp[0].equalsIgnoreCase(temp[1])) {
					String finalLetter = chinese;
					String finalLetter = getOrgNameMultiTone(chinese);
					if(StringUtils.isEmpty(finalLetter)){
						System.out.print(arr[0]);
						System.out.print(arr[1]+":[");
@ -113,19 +118,22 @@ public class PinYinUtils {
	 * @return
	 */
	public static String getOrgNameMultiTone(String chinesePhrase) {
		Assert.notNull(chinesePhrase, "中文词组不可为空");
		if (multiToneMap.containsKey(chinesePhrase.substring(0, 1))) {
			return multiToneMap.get(chinesePhrase.substring(0, 1));
		} else if (multiToneMap.containsKey(chinesePhrase.substring(0, 2))) {
			return multiToneMap.get(chinesePhrase.substring(0, 2));
		} else if (multiToneMap.containsKey(chinesePhrase.substring(0, 3))) {
			return multiToneMap.get(chinesePhrase.substring(0, 3));
		try{
			if (multiToneMap.containsKey(chinesePhrase.substring(0, 1))) {
				return multiToneMap.get(chinesePhrase.substring(0, 1));
			} else if (multiToneMap.containsKey(chinesePhrase.substring(0, 2))) {
				return multiToneMap.get(chinesePhrase.substring(0, 2));
			} else if (multiToneMap.containsKey(chinesePhrase.substring(0, 3))) {
				return multiToneMap.get(chinesePhrase.substring(0, 3));
			}
		}catch (Exception e){
		}
		return null;
	}
	public static void main(String[] args)  throws  Exception{
		System.out.println(getUpEname("李宇春"));
		System.out.println(getFirstSpell("广西"));
		
	}
}