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

如何为Java密码校验程序添加循环功能以无需重启校验多个密码

Java密码校验程序连续校验功能实现

我们基于你原有代码预先定义的endofinput退出触发词,添加循环逻辑即可实现连续校验需求,同时修复了原有代码中小写字母校验的逻辑错误,修改后完整代码如下:

import java.util.Scanner; 
public class Password {
    public static void main(String[] args) {
        String exitFlag = "endofinput";
        Scanner scanner = new Scanner(System.in);
        // 新增无限循环实现连续校验
        while(true){
            System.out.print("请输入待校验密码(输入endofinput退出程序):");
            String password = scanner.nextLine();
            // 判断是否触发退出
            if(exitFlag.equals(password)){
                System.out.println("程序退出");
                scanner.close();
                break;
            }
            // 密码不能包含password字符串校验
            if(password.contains("password")){
                System.out.println("密码不能包含password字符串");
            }
            // 长度校验
            if(password.length() < 8){
                System.out.println("密码长度不能小于8位");
            }
            // 空格/特殊字符校验
            if((password.contains(" ")||password.contains("@")|| password.contains("#")|| password.contains("!") || password.contains("~")|| password.contains("$") || password.contains("%") || password.contains("^")|| password.contains("*") || password.contains("(")|| password.contains(")") || password.contains("-")|| password.contains("+") || password.contains("/")|| password.contains(":") || password.contains("&")|| password.contains(".")|| password.contains(", ") || password.contains("<")|| password.contains(">")|| password.contains("?")|| password.contains("|"))){
                System.out.println("密码不能包含空格或特殊字符");
            }
            // 数字校验
            if(!(password.contains("1")|| password.contains("2")||password.contains("3")||password.contains("4")||password.contains("5")||password.contains("6")||
            password.contains("7")||password.contains("8")||password.contains("9")||password.contains("0"))){
                System.out.println("密码需要包含至少一位数字");
            }
            // 大写字母校验
            int upperCount = 0;
            for (int i = 65; i <= 90; i++) {
                char c = (char)i;
                String e = Character.toString(c);
                if (password.contains(e)) {
                    upperCount = 1;
                }
            }
            if (upperCount == 0) {
                System.out.println("密码需要包含至少一位大写字母");
            }
            // 小写字母校验 修复原有逻辑i起始值错误问题,97对应小写a
            int lowerCount = 0;
            for (int i = 97; i <= 122; i++) {
                char c = (char)i;
                String str1 = Character.toString(c);
                if (password.contains(str1)) {
                    lowerCount = 1;
                }
            }
            if (lowerCount == 0) {
                System.out.println("密码需要包含至少一位小写字母");
            }
            // 校验完成打印分割线,区分多次校验结果
            System.out.println("----------------------------------------");
        }
    }
}

核心修改说明

  • 新增while(true)无限循环包裹输入、校验全流程,无需重启程序即可连续校验多个密码
  • 新增退出逻辑:当用户输入endofinput时,自动关闭Scanner资源后退出程序
  • 修复原有小写字母校验逻辑bug:循环起始值从错误的90调整为97,解决原有逻辑无法正确识别a~y小写字母的问题
  • 优化提示语为中文,添加校验结果分割线,提升使用体验

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 04:54:04