首页 > 解决方案 > 如何向此密码检查器添加循环

问题描述

我创建了一个密码检查程序。它所做的只是要求输入密码,然后在密码不符合我制定的规则时输出。我想寻求帮助以找出循环这个权利,这样您就可以检查多个密码而无需重新启动。

import java.util.Scanner; 
public class password {
    public static void main(String[] args) {
        String end = "endofinput";
        Scanner word = new Scanner(System.in);
        System.out.print("Password:");
        String password = word.nextLine();
        // password
        if(password.contains("password")){
                System.out.println("Password may not contain the word password");
            }
        // lenght        
        if( password.length() < 8){
            System.out.println("Needs to be longer");
            }
        //space/special check
        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("No spaces or special Characters");
                }
        // Number
        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("Need a Number");
        }
        // upper case
        if (true) {
            int count = 0;
            for (int i = 65; i <= 90; i++) {
  
                // type casting
                char c = (char)i;
  
                String e = Character.toString(c);
                if (password.contains(e)) {
                    count = 1;
                }
            }
            if (count == 0) {
                System.out.println("Needs an uppercase letter");
            }
        }
        //lower case
        if (true) {
            int count = 0;
            for (int i = 90; i <= 122; i++) {
  
                // type casting
                char c = (char)i;
                String str1 = Character.toString(c);
  
                if (password.contains(str1)) {
                    count = 1;
                }
            }
            if (count == 0) {
                System.out.println("Needs Lower case");
            }
        }
    }
}

标签: java

解决方案


只需添加一个带有“True”条件的while,然后添加一个带有您想要的条件的if,以退出循环,例如ìf(password == "Exit")。像这样。

    while(true)
    {
        System.out.print("Password:");
        String password = word.nextLine();
        if(password == "exit")
        {
            System.out.println("Ending the program");
            break; //this break will stop the loop
        }
        // password
        if(password.contains("password")){
                System.out.println("Password may not contain the word password");
            }
        // lenght        
        if( password.length() < 8){
            System.out.println("Needs to be longer");
            }
        //space/special check
        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("No spaces or special Characters");
                }
        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("Need a Number");
        }
        // upper case
        if (true) {
            int count = 0;
            for (int i = 65; i <= 90; i++) {
  
                // type casting
                char c = (char)i;
  
                String e = Character.toString(c);
                if (password.contains(e)) {
                    count = 1;
                }
            }
            if (count == 0) {
                System.out.println("Needs an uppercase letter");
            }
        }
        //lower case
        if (true) {
            int count = 0;
            for (int i = 90; i <= 122; i++) {
  
                // type casting
                char c = (char)i;
                String str1 = Character.toString(c);
  
                if (password.contains(str1)) {
                    count = 1;
                }
            }
            if (count == 0) {
                System.out.println("Needs Lower case");
            }
        }
    }

推荐阅读