号码脱敏保留后四位实现指南

在现代应用程序中,为了保护用户隐私,号码脱敏是一项常见的技术。本文将介绍如何在 Java 中实现号码脱敏,保留后四位,并详细描述每一步的实现过程。

处理流程

以下是实现号码脱敏的主要步骤:

步骤描述
1接收用户输入的号码
2检查输入的号码格式是否符合要求
3提取想要保留的后四位
4确定脱敏字符的数量并生成新的字符串
5返回脱敏后的结果
合法 不合法 接收用户输入的号码 检查输入的号码格式 提取后四位 抛出异常 生成脱敏字符串 返回脱敏后的结果

逐步实现

1. 接收用户输入的号码

首先,我们需要一个方法来接收用户输入的号码。为了简单起见,可以从命令行获取输入。

import java.util.Scanner;

public class MaskPhoneNumber {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入号码:");
        String phoneNumber = scanner.nextLine(); // 接收用户输入的号码
        String maskedNumber = maskNumber(phoneNumber); // 调用脱敏方法
        System.out.println("脱敏后的号码为:" + maskedNumber); // 输出脱敏后的号码
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
2. 检查输入的号码格式

接下来,我们需要检查用户输入是否是一个有效的号码。可以使用正则表达式来完成这个任务。

public static String maskNumber(String phoneNumber) {
    // 判断输入号码是否符合正则表达式(以数字为主,长度为11位)
    if (!phoneNumber.matches("\\d{11}")) { 
        throw new IllegalArgumentException("号码格式不正确"); // 抛出异常
    }
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
3. 提取后四位

如果输入合法,我们接下来要提取出号码的后四位。

    String lastFourDigits = phoneNumber.substring(phoneNumber.length() - 4); // 提取后四位
  • 1.
4. 生成脱敏字符串

然后,我们构造一个新的字符串,用脱敏字符替换号码的前面部分,通常用 * 进行替换。

    int maskedLength = phoneNumber.length() - 4; // 计算需要脱敏的长度
    StringBuilder maskedString = new StringBuilder(); // 创建一个StringBuilder来存放结果
    for (int i = 0; i < maskedLength; i++) {
        maskedString.append("*"); // 将脱敏字符添加到结果中
    }
    maskedString.append(lastFourDigits); // 添加后四位
    return maskedString.toString(); // 返回脱敏后的字符串
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
完整代码示例

将上述所有代码结合在一起,我们获得了一个完整的 Java 程序来实现号码脱敏功能。

import java.util.Scanner;

public class MaskPhoneNumber {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入号码:");
        String phoneNumber = scanner.nextLine(); // 接收用户输入的号码
        String maskedNumber = maskNumber(phoneNumber); // 调用脱敏方法
        System.out.println("脱敏后的号码为:" + maskedNumber); // 输出脱敏后的号码
    }

    public static String maskNumber(String phoneNumber) {
        // 判断输入号码是否符合正则表达式(以数字为主,长度为11位)
        if (!phoneNumber.matches("\\d{11}")) { 
            throw new IllegalArgumentException("号码格式不正确"); // 抛出异常
        }

        String lastFourDigits = phoneNumber.substring(phoneNumber.length() - 4); // 提取后四位
        int maskedLength = phoneNumber.length() - 4; // 计算需要脱敏的长度
        StringBuilder maskedString = new StringBuilder(); // 创建一个StringBuilder来存放结果
        for (int i = 0; i < maskedLength; i++) {
            maskedString.append("*"); // 将脱敏字符添加到结果中
        }
        maskedString.append(lastFourDigits); // 添加后四位
        return maskedString.toString(); // 返回脱敏后的字符串
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.

结尾

通过上述步骤,我们实现了一个简单的号码脱敏功能,能够有效保护用户的隐私。希望这篇文章能够帮助刚入行的小白理解并实现这个功能。如果有任何疑问,欢迎随时提问!

MaskPhoneNumber +main(String[] args) +maskNumber(String phoneNumber) : String