Imagine you are developing a software package for Amazon.com that requires users to enter their own passwords. Your software requires that users' passwords meet the following criteria:
The password should be at least six characters long.
The password should contain at least one uppercase and at least one lowercase letter.
The password should have at least one digit.
Write a class that verifies that a password meets the stated criteria. Demonstrate the class in a program that allows the user to enter a password and then displays a message indicating whether it is valid or not.
Breaking it down
This exercise will use java 8 predicates extensively. A predicate is often used in mathematics that something that takes a value for an argument and then returns true or false. Each logic check is a java.util.function.Predicate and the isValid method will chain each predicate together validating the requirements in the problem. The Character:isDigit, Character:isLowerCase and Character:isUpperCase return a predicate so we could of removed the wrapping predicate but if the logic were to change it would require us rewrap.