Also ich versuche, dies zu erhalten, Benutzereingaben als String zu übernehmen und das Passwort überprüfen, um sicher diese beiden Dinge zu machen:Java Probleme zu überprüfen, ob Kennwortzeichenfolge gültig ist
- Das Passwort ist ein Minimum an 8 Charaktere.
- Das Passwort enthält nur Buchstaben und Zahlen.
Jetzt ist das Problem so: das Passwort für mindestens 8 Zeichen Überprüfung funktioniert, aber die Überprüfung es sicher, dass es funktioniert nur Buchstaben und Zahlen enthalten, um nicht. Es endet einfach, ohne eine einzige Nachricht zu geben, wenn die Mindestanzahl von Zahlen/Buchstaben eingegeben wird. Allerdings, wenn es ein Zeichen sieht das kein Buchstabe oder eine Zahl ist, wird es dieses aus drucken:
Bitte geben Sie ein Passwort:
###Passwort kann nur Buchstaben und Zahlen enthalten.
Das Passwort darf nur Buchstaben und Zahlen enthalten.
Das Passwort darf nur Buchstaben und Zahlen enthalten.
Passwort wird akzeptiert!
Was es ausgeben sollte dies:
Bitte geben Sie ein Passwort: ###
Passwort nur Buchstaben und Zahlen enthalten.
oder
Bitte geben Sie ein Passwort: test1234
Passwort akzeptiert!
password.java
package Password;
import java.util.Scanner;
public class Password {
public static void main(String[]args)
{
Scanner input = new Scanner (System.in);
boolean valid = true;
System.out.println("Please enter a password:");
String password = input.nextLine();
int i = 0;
//declares i as the counter varible to control the loop and initializes it to 0
if((password.length() < 8)) //check the passwords length and make sure it's a minimum of 8 characters
{
System.out.println("Password must have at least 8 characters.");
valid = false;
}
//loops the code below it for the length of i until the password length is reached
while(i < password.length())
{
if ((password.charAt(i)>='a' && password.charAt(i)<='z') || (password.charAt(i)>='A' && password.charAt(i)<='Z') ||(password.charAt(i)>='0' && password.charAt(i)<='9'))
//loop through all the characters in the string entered and make sure they only consist of letters and numbers
valid = true;
else
{
System.out.println("Password can only contain letters and numbers.");
valid = false;
}
i++;
//add an iteration to the loop
}
if(!valid == true)
System.out.println("Password accepted!");
}
}
Jede Hilfe mit diesem wäre toll.
Hilft dies: http://stackoverflow.com/questions/13674449/checking-password-code? – ppasler
Sobald Sie ein ungültiges Zeichen gefunden haben, sollten Sie value auf false setzen und aus der Schleife ausbrechen. Andernfalls riskieren Sie, dass das Flag wieder auf "true" gesetzt wird. –