В настоящее время я работаю над своим окончательным проектом для своего Java-класса, и мне нужна небольшая помощь! Поэтому сначала я покажу вам инструкции, мой код, а затем мою проблему.Программа проверки пароля Java
Инструкции
- Напишите программу, которая предлагает пользователю ввести пароль.
- Создайте логическую переменную с именем valid и установите ее в true. Если какой-либо из этих тестов ниже, установите значение true.
- Проверьте пароль, если он содержит не менее 8 символов. Если это не так, отобразите сообщение, «Пароль должен содержать не менее 8 символов».
Проверьте пароль, чтобы увидеть, состоит ли он только из букв и цифр. Для этого вам нужно будет пропустить все символы в строке. Символ с является буквой цифры, если это выражение истинно:
(«а» < = с & & с < = «г») || ('A' < = c & & c < = 'Z') || («0» < = с & & с < = «9»)
, если это даже не так, перерыв с вашего цикла и отобразить сообщение «Пароль должен содержать только буквы и цифры» 5. Если в конце программы все еще верно, верните сообщение «Пароль принят!».
Мой код
import java.util.Scanner;
public class PasswordVerification {
public static void main(String[] args) {
// Creates a scanner
Scanner sc = new Scanner(System.in);
boolean valid = false;
String password;
// Asks user to enter password
System.out.print("Please enter password and then hit enter:");
password = sc.nextLine();
// Checks to see if password is at least 8 characters.
if (password.length()<8)
{
valid = false;
System.out.println("Password must have at least 8 characters");
}
// Checks each character to see if it is acceptable.
for (int i = 0; i < password.length(); i++){
char c = password.charAt(i);
if ( ('a' <= c && c <= 'z') // Checks if it is a lower case letter
|| ('A' <= c && c <= 'Z') //Checks if it is an upper case letter
|| ('0' <= c && c <= '9') //Checks to see if it is a digit
)
{
valid = true;
}
else
{
// tells the user that only letters & digits are allowed
System.out.println("Only letter & digits are acceptable.");
valid = false;
break;
}
}
// if the password is valid, tell the user it's accepted
System.out.println("Password Accepted");
}
}
Итак, есть инструкции и мой код у меня до сих пор. Я SOOOOO близко к выполнению. У меня просто проблемы с четвертой частью. Таким образом, ожидаемый результат должен быть:
Please enter a password: abc
Password much have at least 8 characters
Please enter a password: abcd1234$
Password must only contain letter and digits
Please enter a password: ####
Password must have at least 8 characters
Password must only contain letters and digits
Please enter a password: abcd1234
Password accepted!
Когда я тип а это то, что я получаю:
Please enter password and then hit enter:abc
Password must have at least 8 characters
Password Accepted
Когда я делаю это программа заканчивается! Не мог бы кто-нибудь помочь мне в этом, пожалуйста? Заранее спасибо. =) Кроме того, это класс программирования Java I.
Regex может быть очень полезно для части 4. Есть ли причина, по которой вы ее не используете? Пример: http://stackoverflow.com/questions/11241690/regex-for-checking-if-a-string-is-strictly-alphanumeric – Joe
вам нужно добавить цикл, в то время как для него, и быть там все время пока пароль не будет действителен. – cralfaro
@joe Плакат, безусловно, является полным новичком. Regex - это то, что нужно решать позже. – slim