dabocaiqq
2020-05-09 09:48
采纳率: 66.6%
浏览 259

高分悬赏:Java语言怎么把一个字符串中出现的电话号码,中间4位全部替换为****

高分悬赏:Java语言怎么把一个字符串中出现的电话号码,中间4位全部替换为****

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

7条回答 默认 最新

  • 毕小宝 2020-05-10 16:43
    已采纳

    直接遍历字符串,设置对应 inde 处的值为 *,参考伪代码:

    public static void main(String[] args) {
            String ss = "13241920182";
            char [] chars = ss.toCharArray();
            for(int i=4;i<8;i++) {
                chars[i] = '*';
            }
    
            System.out.println(new String(chars));
        }
    
    已采纳该答案
    打赏 评论
  • Vip Dream 2020-05-09 10:05

    public static void main(String[] args) {

        String phone = "13021212122";
        String newPhone = phone.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2");
    
        System.out.println(newPhone);
    
    }
    
    打赏 评论
  • 東刀人 2020-05-09 10:07
        /**
         * 生成对应手机号脱敏数据
         *
         * @param phoneNo
         * @return 152****4799
         */
        public static String getPhoneNoMask(String phoneNo) {
            if (!StringUtils.isBlank(phoneNo)) {
                return phoneNo.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2");
            }
            return null;
        }
    
    打赏 评论
  • 难得认真 2020-05-09 10:12
    public static void main(String[] args){
        String str = "12345678912";  //手机号
        System.out.println(str);
        StringBuilder sb = new StringBuilder(str);
        sb.replace(3,7,"****");   //[3,7)
        System.out.println(sb);
    }
    
    打赏 评论
  • TaikonautV2.0 2020-05-09 10:20
                String pNumber = "18255478965";
                String newNumber = pNumber.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2");
    
    打赏 评论
  • kesa4j 2020-05-09 10:50
        /**
         *号码脱敏
         * @param msg content
         * @param search "(\\d{3})\\d{4}(\\d{4})"
         * @param replace "$1****$2"
         * @return 脱敏后的字符串
         */
        public static String desensitizeMsg(String msg, String search, String replace) {
            final Pattern phonePattern = Pattern.compile(search);
            Matcher phoneMatcher= phonePattern.matcher(msg);
            if(phoneMatcher.find()){
                final String[] split = msg.split(phoneMatcher.group());
                            //TODO: 这里replace要改下
       return desensitizeMsg(split[0]+phoneMatcher.group().replace("",replace)+split[1],search,replace);
            }else{
                return msg;
            }
        }
    

    这是一段伪代码,仅供参考。。。(谁有空补全下呀)

    打赏 评论
  • dsxjinzhiqiang 2020-05-09 11:55
        String phone=“18999999999”;
        phone.replace(phone.substring(4,8),"****");
    
    打赏 评论

相关推荐 更多相似问题