Java代码检查字母和数字的密码?

时间:2011-02-03 22:39:11

标签: java authentication passwords

第一篇文章是confusamagin。我的任务是创建一个密码提示程序。需要检查密码以查看其中是否至少有一个数字和一个字母。密码长度也必须在6到10之间。

我的问题是试图弄清楚如何查看数字和字母是否存在密码。在检查密码区域,我不知道从哪里开始。我不知道怎么看它是否有一个字母和一个数字。我知道如何做或者使用for语句进行计数和检查,但它只是检查它是否包含所有字母或所有数字。

import java.util.Scanner;

class Password {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

//------ENTER A USERNAME
        System.out.println("Welcome please enter your username and password.");
        System.out.print("Username >>");
        input.nextLine();


//------PASSWORD AUTHENTICATION BEGIN       
        String password = enterPassword();
            while ( !checkPassword(password) ) {
            System.out.println("Password must be 6 - 10 characters long!"); 
            password = enterPassword();
            }

//------PASSWORD VERIFY
        String passwordverify = enterPassword();
        while (!password.equals(passwordverify)){
            System.out.println("ERROR - Passwords DO NOT MATCH Re-Enter Passwords Again");
            password = enterPassword();

        }

//------ACCEPT PASSWORD     
        System.out.println("Username and Password Accepted!");

        }


//--ENTER PASSWORD STATEMENT
    public static String enterPassword(){
        String password;
        Scanner input = new Scanner(System.in);
        System.out.print("Password >>");
        password = input.nextLine();
        return password;
        }

//--BOOLEAN CHECK PW    
    public static boolean checkPassword(String password){
        int length;
        length = password.length();
            if (length < 6 || length > 11){
            return false;
            }
        for (int i = 0; i < password.length();i++){
            if (!Character.isLetter(password.charAt(i)))
            return false;
        }
        return true;
        }

}

2 个答案:

答案 0 :(得分:1)

在没有写完作业的情况下......你在正确的轨道上确保你的字母数和你的数字数都至少为1。

答案 1 :(得分:1)

您的代码只缺少变量计数器。保留两个计数器:一个计数字母,一个计数数字,并在if内的两个for循环结束时执行checkPassword测试,以检查两个计数器是否至少为一个。

执行此操作的替代方法是使用正则表达式。看到这个链接: http://www.mkyong.com/regular-expressions/how-to-validate-password-with-regular-expression/