#java
Вопрос:
Я создал программу проверки паролей. Все, что он делает, — это запрашивает пароль, а затем выводит, если пароль не соответствует правилам, которые я установил. Я хотел бы получить помощь, чтобы понять, как правильно это сделать, чтобы вы могли проверить несколько паролей без перезапуска.
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() lt; 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("amp;")|| password.contains(".")|| password.contains(", ") || password.contains("lt;")|| password.contains("gt;")|| 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 lt;= 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 lt;= 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"); } } } }
Комментарии:
1. Попробуйте обернуть все это в
while
цикл с условием выхода.2. Я второй Refugnic с небольшой корректировкой: оставьте первые 2 строки за пределами цикла.
Ответ №1:
Просто добавьте некоторое время с условием «True» и поставьте «если» с условием, которое вы хотите, например, чтобы выйти из цикла ì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() lt; 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("amp;")|| password.contains(".")|| password.contains(", ") || password.contains("lt;")|| password.contains("gt;")|| 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 lt;= 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 lt;= 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"); } } }
Комментарии:
1. Используйте equals вместо » пароль == «выход»»