| 
					
				 | 
			
			
				@ -6,118 +6,176 @@ import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import net.sourceforge.pinyin4j.format.HanyuPinyinToneType; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.apache.commons.lang3.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.core.io.ClassPathResource; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.core.io.Resource; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.util.Assert; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.ArrayList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.LinkedHashMap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.Map; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.io.BufferedReader; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.io.IOException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.io.InputStreamReader; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				public class PinYinUtil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/**  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 获取汉字串拼音首字母,英文字符不变  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param chinese 汉字串  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 汉语拼音首字母  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public static String getFirstSpell(String chinese) {  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public static final Map<String, String> multiToneMap = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    static { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Resource resource = new ClassPathResource("multitone.properties"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BufferedReader br = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            br = new BufferedReader(new InputStreamReader(resource.getInputStream(), "GBK")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String line = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            while (null != (line = br.readLine())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (!StringUtils.startsWith(line, "#")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String oneLine = line; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String[] lineArr = oneLine.split("="); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    for (String key : lineArr[1].split("/")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        multiToneMap.put(key, lineArr[0]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (IOException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public static void main(String[] args) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        System.out.println(StringUtils.startsWith("######### S ##########", "#")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        System.out.println(multiToneMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 获取汉字串拼音首字母,英文字符不变 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param chinese 汉字串 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 汉语拼音首字母 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public static String getFirstSpell(String chinese) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        StringBuffer pybf = new StringBuffer(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        char[] arr = chinese.toCharArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        defaultFormat.setCaseType(HanyuPinyinCaseType.UPPERCASE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for (int i = 0; i < arr.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (arr[i] > 128) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    String[] temp = PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    if (temp != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                            pybf.append(temp[0].charAt(0)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            } catch (BadHanyuPinyinOutputFormatCombination e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            pybf.append(arr[i]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //只取第一个汉字的拼音 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (arr[0] > 128) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String[] temp = PinyinHelper.toHanyuPinyinStringArray(arr[0], defaultFormat); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                // 长度大于1,表明是多音字,往后多取一个字或两个字,取词组,取匹配多音字属性文件确定最终读音 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (temp != null && temp.length > 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    pybf.append(getOrgNameMultiTone(chinese).charAt(0)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    pybf.append(temp[0].charAt(0)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } catch (BadHanyuPinyinOutputFormatCombination e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return pybf.toString().replaceAll("\\W", "").trim(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    }  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            pybf.append(arr[0]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return pybf.toString().replaceAll("\\W", "").trim(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /**  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 获取汉字串拼音,英文字符不变  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param chinese 汉字串  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 汉语拼音  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public static String getFullSpell(String chinese) {  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            StringBuffer pybf = new StringBuffer();  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            char[] arr = chinese.toCharArray();  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for (int i = 0; i < arr.length; i++) {  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (arr[i] > 128) {  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            try {  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    pybf.append(PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat)[0]);  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            } catch (BadHanyuPinyinOutputFormatCombination e) {  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    e.printStackTrace();  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            }  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } else {  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            pybf.append(arr[i]);  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    }  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return pybf.toString();  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 获取汉字串拼音,英文字符不变 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param chinese 汉字串 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 汉语拼音 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public static String getFullSpell(String chinese) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        StringBuffer pybf = new StringBuffer(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        char[] arr = chinese.toCharArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for (int i = 0; i < arr.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (arr[i] > 128) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    pybf.append(PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat)[0]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } catch (BadHanyuPinyinOutputFormatCombination e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                pybf.append(arr[i]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return pybf.toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 字符串按拼音排序 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param list 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public static Map<String,List<Object>> pingYinSort(List<String> list){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Map<String,List<Object>>  map =  new LinkedHashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String[] alphatables = {"a", "b", "c", "d", "e", "f", "g", "h", "i", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for (String alpha : alphatables){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    for(String one:list){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            String firstSpell = PinYinUtil.getFirstSpell(one).substring(0,1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            if (alpha.equals(firstSpell)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    List<Object> resultList = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    if(map.get(alpha)==null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                            resultList = new ArrayList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                            resultList = map.get(alpha); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    resultList.add(one); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    map.put(alpha,resultList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public static Map<String, Object> pingYinSort(Map<String, Map<String, Object>> result) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Map<String, Object> map = new LinkedHashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String[] alphatables = {"A", "B", "C", "D", "E", "F", "G", "H", "I", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (result.size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<Map<String, Object>> list = Lists.newArrayList(result.values()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for (String alpha : alphatables) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                List<Map<String, Object>> resultList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                for (Map<String, Object> one : list) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String name = String.valueOf(one.get("name")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String firstSpell = PinYinUtil.getFirstSpell(name).substring(0, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (alpha.equals(firstSpell)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        resultList.add(one); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        map.put(alpha, resultList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return map; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return map; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    * 字符串按拼音排序 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    * @param 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public static Map<String,Object> pingYinSort(Map<String, Map<String,Object>> result){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Map<String,Object>  map =  new LinkedHashMap <>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String[] alphatables = {"a", "b", "c", "d", "e", "f", "g", "h", "i", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (result.size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    List<Map<String,Object>> list = Lists.newArrayList(result.values()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    for (String alpha : alphatables){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            List<Map<String,Object>> resultList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            for (Map<String,Object> one : list){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    String name = String.valueOf(one.get("name")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    String firstSpell = PinYinUtil.getFirstSpell(name).substring(0,1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    if (alpha.equals(firstSpell)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                            resultList.add(one); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                            map.put(alpha,resultList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 字符串按拼音排序 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public static Map<String, Object> pingYinSort(List<Map<String, Object>> result) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Map<String, Object> map = new LinkedHashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String[] alphatables = {"A", "B", "C", "D", "E", "F", "G", "H", "I", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (result.size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for (String alpha : alphatables) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                List<Map<String, Object>> resultList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                for (Map<String, Object> one : result) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String name = String.valueOf(one.get("name")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String firstSpell = getFirstSpell(name).substring(0, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (alpha.equals(firstSpell)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        resultList.add(one); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        map.put(alpha, resultList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    return map; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    return map; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return map; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return map; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 获取医院多音字的读音,取词组,最多取三个 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param chinesePhrase 中文词组 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @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)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				} 
			 |