Java手机号掩码显示

在现代社会中,手机号作为身份的重要标识,常常需要保护用户的隐私。在一些应用场景中,我们希望以掩码的方式来显示手机号,以防泄露。本文将介绍如何在Java中实现手机号的掩码显示,包括代码示例和详细解析。

什么是手机号掩码显示?

手机号掩码显示即将用户的真实手机号进行部分隐藏处理,通常用*X等字符替代中间的部分数字,以达到保护隐私的效果。例如,手机号13812345678可以显示为138****5678

掩码显示的必要性

  • 保护用户隐私:在聊天记录、订单信息等场景下,保护用户手机号不被随意查看。
  • 防止信息滥用:避免手机号被第三方恶意用途,比如骚扰电话。

Java实现手机号掩码显示的思路

实现手机号掩码显示的基本思路就是通过字符串处理来替换掉手机号中的部分字符。可以通过以下步骤进行操作:

  1. 输入手机号:从用户处获取手机号。
  2. 检查手机号格式:确保输入的手机号是合法的。
  3. 进行掩码处理:将手机号的中间部分转换为掩码字符。
  4. 输出掩码手机号:显示处理后的手机号。

手机号掩码的实现代码示例

下面是一个简单的代码示例,用于实现手机号的掩码显示:

import java.util.regex.Pattern;
import java.util.Scanner;

public class PhoneNumberMasking {

    // 校验手机号格式
    public static boolean isValidMobile(String mobile) {
        String regex = "^1[3-9]\\d{9}$";
        return Pattern.matches(regex, mobile);
    }

    // 掩码处理
    public static String maskMobile(String mobile) {
        if (isValidMobile(mobile)) {
            return mobile.replaceAll("(?<=\\d{3})\\d{4}(?=\\d{4})", "****");
        } else {
            throw new IllegalArgumentException("手机号格式不正确");
        }
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入手机号(11位数字):");
        String mobile = scanner.nextLine();
        try {
            String maskedMobile = maskMobile(mobile);
            System.out.println("掩码后的手机号为:" + maskedMobile);
        } catch (IllegalArgumentException e) {
            System.out.println(e.getMessage());
        }
    }
}

代码解析

  1. 手机号格式校验:使用isValidMobile方法,通过正则表达式检查手机号格式,确保其符合中国手机号的标准。

    String regex = "^1[3-9]\\d{9}$";
    return Pattern.matches(regex, mobile);
    
  2. 掩码处理:在maskMobile方法中,如果手机号格式合法,则使用正则表达式(?<=\\d{3})\\d{4}(?=\\d{4})将中间的4位数替换为****

    return mobile.replaceAll("(?<=\\d{3})\\d{4}(?=\\d{4})", "****");
    
  3. 异常处理:在输入手机号不合法时,抛出IllegalArgumentException,提示用户输入格式不正确。

  4. 主程序入口:通过Scanner类获取用户输入的手机号,并调用掩码处理方法,将结果输出到控制台。

手机号掩码示例

输入手机号 掩码手机号
13812345678 138****5678
13987654321 139****4321
15812345678 158****5678

小结

通过以上示例,我们学习了如何使用Java实现手机号的掩码显示。通过字符串处理和正则表达式的结合,使得掩码的实现既简单又高效。在实际项目中,同样可以根据不同需求对掩码显示的字符和规则进行调整。

在数据安全愈加重要的今天,保护用户隐私是每个开发者的责任。希望通过本篇文章,大家能对手机号掩码显示有更深入的理解和实现。