Java代码实现身份证号码部分屏蔽

需求:

中国的居民身份证号码长度18位,是属于公民个人的敏感信息,在系统中显示的时候需要将其中某些字符屏蔽掉,用'*'来显示。现在给定一个身份证号码,要求屏蔽掉中间的第s~t位字符,其中1≤s≤t≤18,请输出处理后的号码。

输入格式:

一行,三个输入项,第一个是身份证号;第二个是整数s,表示屏蔽的起始位;第三个是整数t,表示屏蔽的结束位。

输出格式:

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

示例:

输入:

110101199003077654 7 14

输出:

1101011******654

代码:

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 (s < 1 || t > 18 || s > t) {
            System.out.println("输入参数错误!");
            return;
        }

        StringBuilder maskedIdCard = new StringBuilder(idCard);
        for (int i = s - 1; i < t; i++) {
            maskedIdCard.setCharAt(i, '*');
        }
        System.out.println(maskedIdCard.toString());
    }
}

代码解释:

  1. 使用Scanner类获取用户输入的身份证号码、起始位和结束位。
  2. 判断输入参数是否合法,如果参数不合法,则输出错误信息并退出程序。
  3. 使用StringBuilder类将身份证号码转换为可修改的字符串。
  4. 遍历身份证号码的第s~t位,将每一位替换为'*'。
  5. 输出处理后的身份证号码。

注意:

该代码仅供参考,实际应用中需要根据具体需求进行调整。


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

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