使用 Java 代码屏蔽身份证号码敏感信息

中国居民身份证号码长度为 18 位,其中包含公民个人的敏感信息,在系统中显示时需要将某些字符屏蔽掉,用 '*' 来显示。本示例将教您如何使用 Java 代码实现此功能。

问题描述:

给定一个身份证号码,要求屏蔽掉中间的第 s~t 位字符,其中 1 ≤ s ≤ t ≤ 18,请输出处理后的号码。

输入格式:

一行,三个输入项:

  1. 身份证号码
  2. 整数 s,表示屏蔽的起始位
  3. 整数 t,表示屏蔽的结束位

输出格式:

一行,处理后的身份证号码。

示例:

输入:

320124198808240056 7 12

输出:

320124********056

代码实现:

import java.util.Scanner;

public class IDCardMask {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String idCard = scanner.next();
        int s = scanner.nextInt();
        int t = scanner.nextInt();

        // 校验输入是否合法
        if (idCard.length() != 18 || s < 1 || t > 18 || s > t) {
            System.out.println("输入参数不合法");
            return;
        }

        // 对身份证号码进行屏蔽处理
        String maskedIdCard = idCard.substring(0, s - 1) + String.valueOf('*').repeat(t - s + 1) + idCard.substring(t);
        System.out.println(maskedIdCard);
    }
}

代码解释:

  1. 使用 Scanner 类获取用户输入的身份证号码、起始位 s 和 结束位 t。
  2. 对输入参数进行合法性校验,确保身份证号码长度为 18 位,s 和 t 在合法范围内,且 s 小于等于 t。
  3. 使用 substring 方法截取身份证号码的前 s-1 位和后 t 位。
  4. 使用 String.valueOf('*').repeat(t - s + 1) 生成长度为 t-s+1 的星号字符串。
  5. 将三部分字符串拼接起来,得到处理后的身份证号码。

注意:

本代码仅供参考,实际应用中需要根据具体场景进行调整。例如,可以根据需要修改星号的显示位置和数量,也可以增加对输入参数的更严格的校验等。


原文地址: https://www.cveoy.top/t/topic/j9XI 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录