だから私は、これは文字列としてユーザー入力を取得し、これら二つのことを確認するためのパスワードを確認するために取得しようとしている:のJavaトラブルがチェック
- パスワードは最低であります8文字。
- パスワードには文字と数字のみが含まれています。
これは問題です。 パスワードを8文字以上確認しても、文字と数字だけが含まれていることを確認しても機能しません。最小の数字/文字数が入力された場合、単一のメッセージを出すことなく終了するだけです。それは文字または数字ではない文字を見ればしかし、それはこのをプリントアウトします:
パスワードを入力してください:###
パスワードは文字と数字のみを含めることができます。
パスワードには文字と数字のみを使用できます。
パスワードには文字と数字のみを使用できます。
パスワードを受け入れてください!
出力とは何か、それはすべきこの:###
パスワードは文字と数字のみを含めることができます。
パスワードを入力してください。
または
パスワードを入力してください:受け入れtest1234
パスワードを!
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!");
}
}
これに関するすべてのヘルプは素晴らしいものです。
これは役立ちますか?http://stackoverflow.com/questions/13674449/checking-password-code? – ppasler
無効な文字を見つけたら、validをfalseに設定してループから抜け出す必要があります。それ以外の場合は、フラグを有効にして再度trueに設定するリスクがあります。 –