Java Imagine you are developing a software package for an online shopping site t
ID: 3681891 • Letter: J
Question
Java
Imagine you are developing a software package for an online shopping site 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.
Explanation / Answer
import java.util.Scanner;
public class PasswordVerifier {
private final static String LENGTH_ERROR = "Password length should be at least 6";
private final static String UPPERCASE_ERROR = "Password should contain at least one upper case letter";
private final static String LOWERCASE_ERROR = "Password should contain at least one lower case letter";
private final static String VALID = "Password is valid";
public static String verifyPassword(String password){
if(password==null || password.trim().length() < 6)
return LENGTH_ERROR;
password = password.trim();
boolean isUpperCase = false;
boolean isLowerCase = false;
for(int i=0; i<password.length(); i++){
char c = password.charAt(i);
if(Character.isLetter(c)){
if(Character.isLowerCase(c))
isLowerCase = true;
else if(Character.isUpperCase(c))
isUpperCase = true;
}
if(isLowerCase && isUpperCase)
return VALID;
}
if(!isLowerCase)
return LOWERCASE_ERROR;
else
return UPPERCASE_ERROR;
}
}
class TestPassword{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter a password: ");
String password = sc.next();
System.out.println(PasswordVerifier.verifyPassword(password));
}
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.