Java 身份证号码屏蔽处理:如何用星号(*)隐藏敏感信息
使用 Java 代码屏蔽身份证号码敏感信息
中国居民身份证号码长度为 18 位,其中包含公民个人的敏感信息,在系统中显示时需要将某些字符屏蔽掉,用 '*' 来显示。本示例将教您如何使用 Java 代码实现此功能。
问题描述:
给定一个身份证号码,要求屏蔽掉中间的第 s~t 位字符,其中 1 ≤ s ≤ t ≤ 18,请输出处理后的号码。
输入格式:
一行,三个输入项:
- 身份证号码
- 整数 s,表示屏蔽的起始位
- 整数 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);
}
}
代码解释:
- 使用
Scanner类获取用户输入的身份证号码、起始位 s 和 结束位 t。 - 对输入参数进行合法性校验,确保身份证号码长度为 18 位,s 和 t 在合法范围内,且 s 小于等于 t。
- 使用
substring方法截取身份证号码的前 s-1 位和后 t 位。 - 使用
String.valueOf('*').repeat(t - s + 1)生成长度为 t-s+1 的星号字符串。 - 将三部分字符串拼接起来,得到处理后的身份证号码。
注意:
本代码仅供参考,实际应用中需要根据具体场景进行调整。例如,可以根据需要修改星号的显示位置和数量,也可以增加对输入参数的更严格的校验等。
原文地址: https://www.cveoy.top/t/topic/j9XI 著作权归作者所有。请勿转载和采集!