java web项目实现手机通讯录展示的方法

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);
    }

}



欢迎交流沟通 :QQ(V信):502096352

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要在Android Studio中使用WebView实现通讯录先需要创建一个新的Android工程,并在布局文件中添加一个WebView组件。然后,需要在代码中加载一个包含通讯录功能的web页面,并启用JavaScript交互。在web页面中,可以使用HTML、CSS和JavaScript来创建通讯录界面,并实现添加、删除、编辑联系人等功能。 在Android Studio中,需要在Activity中配置WebView的设置,如启用JavaScript、设置WebViewClient等。通过WebViewClient可以拦截网页的加载过程,并在Android应用中处理对应的逻辑。同时,可以通过JavaScript与Android应用进行通信,例如通过JavaScript调用Android方法实现添加联系人、删除联系人等操作。 在Android应用中,还可以通过WebView的接口来调用JavaScript方法实现web页面的数据交互。例如,通过WebView的addJavascriptInterface方法,可以将Java对象注入到JavaScript中,从而实现Android应用与WebView之间的双向通信。 最后,需要注意在使用WebView时,要注意安全性问题,防止恶意网页攻击。可以通过设置WebView的安全策略、禁止加载不安全的资源等方式来加强安全性。另外,还可以对JavaScript接口进行限制,只暴露必要的方法,以减少潜在的风险。 总之,通过在Android Studio中使用WebView实现通讯录,可以充分发挥WebView的强大功能,实现一个功能丰富、交互性强的通讯录应用。同时,需要在开发过程中注意安全性和用户体验,确保应用的稳定性和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值