package com.hat.action.wordBar;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import com.hat.bean.UserInfo;
import com.hat.intf.UserInfoService;
import com.hat.utils.UtilsMethod;
import net.sourceforge.pinyin4j.PinyinHelper;
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
/***
* 汉字工具类
*
* @author csharper
* @since 2014.12.26
*
*/
@Controller
public class test {
/***
* 将汉字转成拼音(取首字母或全拼)
*
* @param hanzi
* @param full
* 是否全拼
* @return
*/
public static String convertHanzi2Pinyin(String hanzi, boolean full) {
/***
* ^[\u2E80-\u9FFF]+$ 匹配所有东亚区的语言 ^[\u4E00-\u9FFF]+$ 匹配简体和繁体
* ^[\u4E00-\u9FA5]+$ 匹配简体
*/
String regExp = "^[\u4E00-\u9FFF]+$";
StringBuffer sb = new StringBuffer();
if (hanzi == null || "".equals(hanzi.trim())) {
return "";
}
String pinyin = "";
for (int i = 0; i < hanzi.length(); i++) {
char unit = hanzi.charAt(i);
if (match(String.valueOf(unit), regExp))// 是汉字,则转拼音
{
pinyin = convertSingleHanzi2Pinyin(unit);
if (full) {
sb.append(pinyin);
} else {
sb.append(pinyin.charAt(0));
}
} else {
sb.append(unit);
}
}
return sb.toString();
}
/***
* 将单个汉字转成拼音
*
* @param hanzi
* @return
*/
private static String convertSingleHanzi2Pinyin(char hanzi) {
HanyuPinyinOutputFormat outputFormat = new HanyuPinyinOutputFormat();
outputFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
String[] res;
StringBuffer sb = new StringBuffer();
try {
res = PinyinHelper.toHanyuPinyinStringArray(hanzi, outputFormat);
sb.append(res[0]);// 对于多音字,只用第一个拼音
} catch (Exception e) {
e.printStackTrace();
return "";
}
return sb.toString();
}
/***
* @param str
* 源字符串
* @param regex
* 正则表达式
* @return 是否匹配
*/
public static boolean match(String str, String regex) {
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(str);
return matcher.find();
}
public static void main(String[] args) {
Map<String,Object> reMap=new HashMap<>();
List<Map> listA=new ArrayList<>();
List<Map> listB=new ArrayList<>();
List<Map> listC=new ArrayList<>();
List<Map> listD=new ArrayList<>();
List<Map> listE=new ArrayList<>();
List<Map> listF=new ArrayList<>();
List<Map> listG=new ArrayList<>();
List<Map> listH=new ArrayList<>();
List<Map> listI=new ArrayList<>();
List<Map> listJ=new ArrayList<>();
List<Map> listK=new ArrayList<>();
List<Map> listL=new ArrayList<>();
List<Map> listM=new ArrayList<>();
List<Map> listN=new ArrayList<>();
List<Map> listO=new ArrayList<>();
List<Map> listP=new ArrayList<>();
List<Map> listQ=new ArrayList<>();
List<Map> listR=new ArrayList<>();
List<Map> listS=new ArrayList<>();
List<Map> listT=new ArrayList<>();
List<Map> listU=new ArrayList<>();
List<Map> listV=new ArrayList<>();
List<Map> listW=new ArrayList<>();
List<Map> listX=new ArrayList<>();
List<Map> listY=new ArrayList<>();
List<Map> listZ=new ArrayList<>();
String plfId = "441f9405f5dc4193bda502b8d0c37972";
String type = "1";
String[] users = { "陶月", "聂希玉", "冯聪", "谢浩", "姚军", "许经理", "左建海", "彭博" };
Map<String,Object> map=null;
for (int i = 0; i < users.length; i++) {
String str = UtilsMethod.convertHanzi2Pinyin(users[i], true).substring(0, 1);
switch (str) {
case "a":
map=new HashMap<>();
map.put("name", users[i]);
listA.add(map);
break;
case "b":
map=new HashMap<>();
map.put("name", users[i]);
listB.add(map);
break;
case "c":
map=new HashMap<>();
map.put("name", users[i]);
listC.add(map);
break;
case "d":
map=new HashMap<>();
map.put("name", users[i]);
listD.add(map);
break;
case "e":
map=new HashMap<>();
map.put("name", users[i]);
listE.add(map);
break;
case "f":
map=new HashMap<>();
map.put("name", users[i]);
listF.add(map);
break;
case "g":
map=new HashMap<>();
map.put("name", users[i]);
listG.add(map);
break;
case "h":
map=new HashMap<>();
map.put("name", users[i]);
listH.add(map);
break;
case "i":
map=new HashMap<>();
map.put("name", users[i]);
listI.add(map);
break;
case "j":
map=new HashMap<>();
map.put("name", users[i]);
listJ.add(map);
break;
case "k":
map=new HashMap<>();
map.put("name", users[i]);
listK.add(map);
break;
case "l":
map=new HashMap<>();
map.put("name", users[i]);
listL.add(map);
break;
case "m":
map=new HashMap<>();
map.put("name", users[i]);
listM.add(map);
break;
case "n":
map=new HashMap<>();
map.put("name", users[i]);
listN.add(map);
break;
case "o":
map=new HashMap<>();
map.put("name", users[i]);
listO.add(map);
break;
case "p":
map=new HashMap<>();
map.put("name", users[i]);
listP.add(map);
break;
case "q":
map=new HashMap<>();
map.put("name", users[i]);
listQ.add(map);
break;
case "r":
map=new HashMap<>();
map.put("name", users[i]);
listR.add(map);
break;
case "s":
map=new HashMap<>();
map.put("name", users[i]);
listS.add(map);
break;
case "t":
map=new HashMap<>();
map.put("name", users[i]);
listT.add(map);
break;
case "u":
map=new HashMap<>();
map.put("name", users[i]);
listU.add(map);
break;
case "v":
map=new HashMap<>();
map.put("name", users[i]);
listV.add(map);
break;
case "w":
map=new HashMap<>();
map.put("name", users[i]);
listW.add(map);
break;
case "x":
map=new HashMap<>();
map.put("name", users[i]);
listX.add(map);
break;
case "y":
map=new HashMap<>();
map.put("name", users[i]);
listY.add(map);
break;
case "z":
map=new HashMap<>();
map.put("name", users[i]);
listZ.add(map);
break;
}
}
if(listA!=null && listA.size()>0){
reMap.put("A",listA);
}
if(listB!=null && listB.size()>0){
reMap.put("B",listB);
}
if(listC!=null && listC.size()>0){
reMap.put("C",listC);
}
if(listD!=null && listD.size()>0){
reMap.put("D",listD);
}
if(listE!=null && listE.size()>0){
reMap.put("E",listE);
}
if(listF!=null && listF.size()>0){
reMap.put("F",listF);
}
if(listG!=null && listG.size()>0){
reMap.put("G",listG);
}
if(listH!=null && listH.size()>0){
reMap.put("H",listH);
}
if(listI!=null && listI.size()>0){
reMap.put("I",listI);
}
if(listJ!=null && listJ.size()>0){
reMap.put("J",listJ);
}
if(listK!=null && listK.size()>0){
reMap.put("K",listK);
}
if(listL!=null && listL.size()>0){
reMap.put("L",listL);
}
if(listM!=null && listM.size()>0){
reMap.put("M",listM);
}
if(listN!=null && listN.size()>0){
reMap.put("N",listN);
}
if(listO!=null && listO.size()>0){
reMap.put("O",listO);
}
if(listP!=null && listP.size()>0){
reMap.put("P",listP);
}
if(listQ!=null && listQ.size()>0){
reMap.put("Q",listQ);
}
if(listR!=null && listR.size()>0){
reMap.put("R",listR);
}
if(listS!=null && listS.size()>0){
reMap.put("S",listS);
}
if(listT!=null && listT.size()>0){
reMap.put("T",listT);
}
if(listU!=null && listU.size()>0){
reMap.put("U",listU);
}
if(listV!=null && listV.size()>0){
reMap.put("V",listV);
}
if(listW!=null && listW.size()>0){
reMap.put("W",listW);
}
if(listX!=null && listX.size()>0){
reMap.put("X",listX);
}
if(listY!=null && listY.size()>0){
reMap.put("Y",listY);
}
if(listZ!=null && listZ.size()>0){
reMap.put("Z",listZ);
}
System.out.println(reMap);
}
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import com.hat.bean.UserInfo;
import com.hat.intf.UserInfoService;
import com.hat.utils.UtilsMethod;
import net.sourceforge.pinyin4j.PinyinHelper;
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
/***
* 汉字工具类
*
* @author csharper
* @since 2014.12.26
*
*/
@Controller
public class test {
/***
* 将汉字转成拼音(取首字母或全拼)
*
* @param hanzi
* @param full
* 是否全拼
* @return
*/
public static String convertHanzi2Pinyin(String hanzi, boolean full) {
/***
* ^[\u2E80-\u9FFF]+$ 匹配所有东亚区的语言 ^[\u4E00-\u9FFF]+$ 匹配简体和繁体
* ^[\u4E00-\u9FA5]+$ 匹配简体
*/
String regExp = "^[\u4E00-\u9FFF]+$";
StringBuffer sb = new StringBuffer();
if (hanzi == null || "".equals(hanzi.trim())) {
return "";
}
String pinyin = "";
for (int i = 0; i < hanzi.length(); i++) {
char unit = hanzi.charAt(i);
if (match(String.valueOf(unit), regExp))// 是汉字,则转拼音
{
pinyin = convertSingleHanzi2Pinyin(unit);
if (full) {
sb.append(pinyin);
} else {
sb.append(pinyin.charAt(0));
}
} else {
sb.append(unit);
}
}
return sb.toString();
}
/***
* 将单个汉字转成拼音
*
* @param hanzi
* @return
*/
private static String convertSingleHanzi2Pinyin(char hanzi) {
HanyuPinyinOutputFormat outputFormat = new HanyuPinyinOutputFormat();
outputFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
String[] res;
StringBuffer sb = new StringBuffer();
try {
res = PinyinHelper.toHanyuPinyinStringArray(hanzi, outputFormat);
sb.append(res[0]);// 对于多音字,只用第一个拼音
} catch (Exception e) {
e.printStackTrace();
return "";
}
return sb.toString();
}
/***
* @param str
* 源字符串
* @param regex
* 正则表达式
* @return 是否匹配
*/
public static boolean match(String str, String regex) {
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(str);
return matcher.find();
}
public static void main(String[] args) {
Map<String,Object> reMap=new HashMap<>();
List<Map> listA=new ArrayList<>();
List<Map> listB=new ArrayList<>();
List<Map> listC=new ArrayList<>();
List<Map> listD=new ArrayList<>();
List<Map> listE=new ArrayList<>();
List<Map> listF=new ArrayList<>();
List<Map> listG=new ArrayList<>();
List<Map> listH=new ArrayList<>();
List<Map> listI=new ArrayList<>();
List<Map> listJ=new ArrayList<>();
List<Map> listK=new ArrayList<>();
List<Map> listL=new ArrayList<>();
List<Map> listM=new ArrayList<>();
List<Map> listN=new ArrayList<>();
List<Map> listO=new ArrayList<>();
List<Map> listP=new ArrayList<>();
List<Map> listQ=new ArrayList<>();
List<Map> listR=new ArrayList<>();
List<Map> listS=new ArrayList<>();
List<Map> listT=new ArrayList<>();
List<Map> listU=new ArrayList<>();
List<Map> listV=new ArrayList<>();
List<Map> listW=new ArrayList<>();
List<Map> listX=new ArrayList<>();
List<Map> listY=new ArrayList<>();
List<Map> listZ=new ArrayList<>();
String plfId = "441f9405f5dc4193bda502b8d0c37972";
String type = "1";
String[] users = { "陶月", "聂希玉", "冯聪", "谢浩", "姚军", "许经理", "左建海", "彭博" };
Map<String,Object> map=null;
for (int i = 0; i < users.length; i++) {
String str = UtilsMethod.convertHanzi2Pinyin(users[i], true).substring(0, 1);
switch (str) {
case "a":
map=new HashMap<>();
map.put("name", users[i]);
listA.add(map);
break;
case "b":
map=new HashMap<>();
map.put("name", users[i]);
listB.add(map);
break;
case "c":
map=new HashMap<>();
map.put("name", users[i]);
listC.add(map);
break;
case "d":
map=new HashMap<>();
map.put("name", users[i]);
listD.add(map);
break;
case "e":
map=new HashMap<>();
map.put("name", users[i]);
listE.add(map);
break;
case "f":
map=new HashMap<>();
map.put("name", users[i]);
listF.add(map);
break;
case "g":
map=new HashMap<>();
map.put("name", users[i]);
listG.add(map);
break;
case "h":
map=new HashMap<>();
map.put("name", users[i]);
listH.add(map);
break;
case "i":
map=new HashMap<>();
map.put("name", users[i]);
listI.add(map);
break;
case "j":
map=new HashMap<>();
map.put("name", users[i]);
listJ.add(map);
break;
case "k":
map=new HashMap<>();
map.put("name", users[i]);
listK.add(map);
break;
case "l":
map=new HashMap<>();
map.put("name", users[i]);
listL.add(map);
break;
case "m":
map=new HashMap<>();
map.put("name", users[i]);
listM.add(map);
break;
case "n":
map=new HashMap<>();
map.put("name", users[i]);
listN.add(map);
break;
case "o":
map=new HashMap<>();
map.put("name", users[i]);
listO.add(map);
break;
case "p":
map=new HashMap<>();
map.put("name", users[i]);
listP.add(map);
break;
case "q":
map=new HashMap<>();
map.put("name", users[i]);
listQ.add(map);
break;
case "r":
map=new HashMap<>();
map.put("name", users[i]);
listR.add(map);
break;
case "s":
map=new HashMap<>();
map.put("name", users[i]);
listS.add(map);
break;
case "t":
map=new HashMap<>();
map.put("name", users[i]);
listT.add(map);
break;
case "u":
map=new HashMap<>();
map.put("name", users[i]);
listU.add(map);
break;
case "v":
map=new HashMap<>();
map.put("name", users[i]);
listV.add(map);
break;
case "w":
map=new HashMap<>();
map.put("name", users[i]);
listW.add(map);
break;
case "x":
map=new HashMap<>();
map.put("name", users[i]);
listX.add(map);
break;
case "y":
map=new HashMap<>();
map.put("name", users[i]);
listY.add(map);
break;
case "z":
map=new HashMap<>();
map.put("name", users[i]);
listZ.add(map);
break;
}
}
if(listA!=null && listA.size()>0){
reMap.put("A",listA);
}
if(listB!=null && listB.size()>0){
reMap.put("B",listB);
}
if(listC!=null && listC.size()>0){
reMap.put("C",listC);
}
if(listD!=null && listD.size()>0){
reMap.put("D",listD);
}
if(listE!=null && listE.size()>0){
reMap.put("E",listE);
}
if(listF!=null && listF.size()>0){
reMap.put("F",listF);
}
if(listG!=null && listG.size()>0){
reMap.put("G",listG);
}
if(listH!=null && listH.size()>0){
reMap.put("H",listH);
}
if(listI!=null && listI.size()>0){
reMap.put("I",listI);
}
if(listJ!=null && listJ.size()>0){
reMap.put("J",listJ);
}
if(listK!=null && listK.size()>0){
reMap.put("K",listK);
}
if(listL!=null && listL.size()>0){
reMap.put("L",listL);
}
if(listM!=null && listM.size()>0){
reMap.put("M",listM);
}
if(listN!=null && listN.size()>0){
reMap.put("N",listN);
}
if(listO!=null && listO.size()>0){
reMap.put("O",listO);
}
if(listP!=null && listP.size()>0){
reMap.put("P",listP);
}
if(listQ!=null && listQ.size()>0){
reMap.put("Q",listQ);
}
if(listR!=null && listR.size()>0){
reMap.put("R",listR);
}
if(listS!=null && listS.size()>0){
reMap.put("S",listS);
}
if(listT!=null && listT.size()>0){
reMap.put("T",listT);
}
if(listU!=null && listU.size()>0){
reMap.put("U",listU);
}
if(listV!=null && listV.size()>0){
reMap.put("V",listV);
}
if(listW!=null && listW.size()>0){
reMap.put("W",listW);
}
if(listX!=null && listX.size()>0){
reMap.put("X",listX);
}
if(listY!=null && listY.size()>0){
reMap.put("Y",listY);
}
if(listZ!=null && listZ.size()>0){
reMap.put("Z",listZ);
}
System.out.println(reMap);
}
}
欢迎交流沟通 :QQ(V信):502096352