|  | @ -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("广西"));
 | 
	
		
			
				|  |  | 		
 | 
	
		
			
				|  |  | 	}
 | 
	
		
			
				|  |  | }
 |