You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求协助为Java密码校验程序添加二次确认功能

实现符合要求的Java密码校验功能

没问题,我帮你把这个密码校验功能完整实现出来!下面是修改后的可直接编译运行的代码,完全满足你提出的所有要求:密码长度必须为8位、包含至少1个大写字母、1个小写字母和1个数字,并且会要求用户再次输入密码进行匹配验证。

import java.util.Scanner;

public class PassChecker2 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        String inputPassword;
        String confirmPassword;

        // 第一步:获取符合规则的密码
        do {
            System.out.println("请输入密码(要求:长度8位,包含1个大写字母、1个小写字母和1个数字):");
            inputPassword = input.nextLine().trim();
            if (!checkPasswordValidity(inputPassword)) {
                System.out.println("密码不符合规则,请重新输入!");
            }
        } while (!checkPasswordValidity(inputPassword));

        // 第二步:验证两次密码是否匹配
        do {
            System.out.println("请再次输入密码进行确认:");
            confirmPassword = input.nextLine().trim();
            if (!inputPassword.equals(confirmPassword)) {
                System.out.println("两次输入的密码不一致,请重新输入!");
            }
        } while (!inputPassword.equals(confirmPassword));

        System.out.println("密码设置成功!");
        input.close();
    }

    // 密码规则校验方法
    private static boolean checkPasswordValidity(String password) {
        // 正则表达式:匹配长度恰好8位,包含至少一个小写、一个大写、一个数字
        String passwordRegex = "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d).{8}$";
        return password.matches(passwordRegex);
    }
}

关键部分说明:

  • 密码规则校验:我用了正则表达式^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d).{8}$,拆解一下:
    • (?=.*[a-z]):确保包含至少一个小写字母
    • (?=.*[A-Z]):确保包含至少一个大写字母
    • (?=.*\\d):确保包含至少一个数字
    • .{8}:确保密码长度恰好为8位
  • 循环输入逻辑:用do-while循环来保证用户输入符合要求才会进入下一步,避免一次输入错误就程序终止
  • 密码匹配验证:第二次输入密码后直接和第一次的有效密码对比,不一致就重新输入,直到匹配成功

内容的提问来源于stack exchange,提问作者SamaliiiRose

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:05:44