Java Programming Implement a program that reads in a user pa
Java Programming
Implement a program that reads in a user password and verifies it meets the following criteria:
- At least 8 characters long
- Contains at lease 1 lower letter character
- Contains at least 1 upper letter character
- Contains at least 1 numeric digit
- Contains at least 1 special character from the set !@#$%^&*
- Does not contain the word \"and\" or the word \"the\"
- Promts the user for a password, including the requirements above in your output.
- Output a string that states valid or invalid. If invalid, state which rules from the list above have been met, and prompt the user to enter another password.
Utilize the following functionality:
- indexOf
- Looping structure
- charAT()
- isDigit()
- isUpperCase()
- isLowerCase()
Sample Output:
 
 Password Verifier
 
 Enter a password that meets the following rules:
 <list rules from above>
 Password1
 
 Invalid
 Missing a special character
 
 -----------------------------------------------------------------
 
 Password Verifier
 
 Enter a password that meets the following rules:
 <list rules from above>
 Panda123$
 
 Invalid
 Contains the string “and”
 
 -----------------------------------------------------------------
 
 Password Verifier
 
 Enter a password that meets the following rules:
 <list rules from above>
 Hi
 
 Invalid
 Must be at least 8 characters long
 Must contain a numeric digit
 Must contain a special character
 
 -----------------------------------------------------------------
 
 Password Verifier
 
 Enter a password that meets the following rules:
 <list rules from above>
 Pa$$word1
 
 Valid
Solution
PasswordCheckerUsingMethods.java
import java.util.Scanner;
public class PasswordCheckerUsingMethods {
   public static void main(String[] args) {
        //Declaring variable
        String str = null;
       
        // Scanner object is used to get the inputs entered by the user
        Scanner sc = new Scanner(System.in);
       
        //This loop continue to execute until the user enters a valid password
        while(true)
        {
           
            //Getting the input entered by the user
            System.out.print(\"Enter a new password :\");
            str = sc.nextLine();
            if(AtLeast8(str))
            {
                //Displaying the error message
                System.out.println(\"Invalid: Too Few Characters (8 at least)\");
                continue;
            }
            else if(!containsLowerCase(str))
            {
                System.out.println(\"Invalid.Contains at least 1 lower letter character\");
                continue;
            }
            else if(!containsUpperCase(str))
            {
                System.out.println(\"Invalid.Contains at least 1 upper letter character\");
                continue;
            }
           
            /* checking whether the password contains letter or digit by calling the method
            * if yes,then this block of code get executed and display
            * error message and prompt the user to enter again
            */
            else if (!containsDigit(str)) {
               
                //Displaying the error message
                System.out.println(\"Invalid: Contains at least 1 numeric digit\");
                continue;
               
            }
            else if(!containsSpecialChar(str))
            {
                System.out.println(\"Invalid:Missing a special character\");
                continue;
               
            }
            else if(containsInvalidWords(str))
            {
                System.out.println(\"Invalid.Does not contain the word \'and\'or the word \'the\'\");
                continue;
            }
            else
                System.out.println(\":: Valid Password ::\");  
            break;
        }
       
}
   private static boolean containsInvalidWords(String str) {
        int flag=0;
    if(str.contains(\"and\") ||str.contains(\"the\") )
    {
        flag=1;
    }
    if(flag==1)
        return true;
    else
        return false;
    }
   private static boolean containsSpecialChar(String str) {
        int count=0;
        char arr[]={\'!\',\'@\',\'#\',\'$\',\'%\',\'^\',\'&\',\'*\'};
        for(int i=0;i<str.length();i++)
        {
            for(int j=0;j<arr.length;j++)
            {
                if(str.charAt(i)==arr[j])
                {
                    count++;
                }              
            }
       }
        if(count>=1)
        return true;
        else
        return false;
    }
   private static boolean containsDigit(String str) {
        int count=0;
        for(int i=0;i<str.length();i++)
        {
            if(Character.isDigit(str.charAt(i)))
            {
                count++;
            }
        }
        if(count>=1)
        return true;
        else
        return false;
    }
   private static boolean containsUpperCase(String str) {
        int count=0;
        for(int i=0;i<str.length();i++)
        {
            if(Character.isUpperCase(str.charAt(i)))
            {
                count++;
            }
        }
        if(count>=1)
        return true;
        else
        return false;
}
   private static boolean containsLowerCase(String str) {
        int count=0;
        for(int i=0;i<str.length();i++)
        {
            if(Character.isLowerCase(str.charAt(i)))
            {
                count++;
            }
        }
        if(count>=1)
        return true;
        else
        return false;
    }
   /* This method will check whether the password length
    * is atleast 8 or not
    * Params : String
    * Return : boolean
    */
    private static boolean AtLeast8(String str) {
    if(str.length()<8)
        return true;
    else
        return false;
    }
  
 }
___________________
Output:
Enter a new password :Password1
 Invalid:Missing a special character
 Enter a new password :Panda123$
 Invalid.Does not contain the word \'and\'or the word \'the\'
 Enter a new password :Hi
 Invalid: Too Few Characters (8 at least)
 Enter a new password :Pa$$word1
 :: Valid Password ::
_____Thank You





