import java.util.Scanner ;
public class Main
{
public static void main
( String [ ] args
) {
final Scanner input
= new Scanner
( System .
in ) ;
while ( true )
{
System .
out .
print ( "Enter your password:" ) ; final String password
= input.
nextLine ( ) ;
boolean haslowercase = false ;
boolean hasuppercase = false ;
boolean hasdigit = false ;
for ( int i = 0 ; i < password.length ( ) ; i++ ) {
haslowercase
= haslowercase
|| Character .
isLowerCase ( c
) ; hasuppercase
= hasuppercase
|| Character .
isUpperCase ( c
) ; }
final boolean passwordlength = ( password.length ( ) >= 6 ) ;
if ( ! haslowercase)
System .
out .
println ( "Password needs to contain at least one lowercase letter" ) ; if ( ! hasuppercase)
System .
out .
println ( "Password needs to contain at least one uppercase letter" ) ; if ( ! hasdigit)
System .
out .
println ( "Password needs to contain at least one digit" ) ; if ( ! passwordlength)
System .
out .
println ( "Password needs to have 6 or more characters" ) ; if ( ! haslowercase || ! hasuppercase || ! hasdigit || ! passwordlength)
continue ;
System .
out .
print ( "Enter password again to verify" ) ; final String password2
= input.
nextLine ( ) ;
if ( password.equals ( password2) ) {
System .
out .
println ( "You have entered a valid password" ) ; break ;
} else {
System .
out .
println ( "Password does not match. Start over" ) ; continue ;
}
}
}
}
aW1wb3J0IGphdmEudXRpbC5TY2FubmVyOwoKcHVibGljIGNsYXNzIE1haW4KewoKcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgCnsKCWZpbmFsIFNjYW5uZXIgaW5wdXQgPSBuZXcgU2Nhbm5lcihTeXN0ZW0uaW4pOwoJCgl3aGlsZSAodHJ1ZSkKCXsKCQlTeXN0ZW0ub3V0LnByaW50KCJFbnRlciB5b3VyIHBhc3N3b3JkOiIpOwoJCWZpbmFsIFN0cmluZyBwYXNzd29yZCA9IGlucHV0Lm5leHRMaW5lKCk7CgkJCQoJCWJvb2xlYW4gaGFzbG93ZXJjYXNlID0gZmFsc2U7CgkJYm9vbGVhbiBoYXN1cHBlcmNhc2UgPSBmYWxzZTsKCQlib29sZWFuIGhhc2RpZ2l0ID0gZmFsc2U7CgkJZm9yIChpbnQgaSA9IDA7IGkgPCBwYXNzd29yZC5sZW5ndGgoKTsgaSsrKSB7CgkJCWZpbmFsIENoYXJhY3RlciBjID0gcGFzc3dvcmQuY2hhckF0KGkpOwoJCQloYXNsb3dlcmNhc2UgPSBoYXNsb3dlcmNhc2UgfHwgQ2hhcmFjdGVyLmlzTG93ZXJDYXNlKGMpOwoJCQloYXN1cHBlcmNhc2UgPSBoYXN1cHBlcmNhc2UgfHwgQ2hhcmFjdGVyLmlzVXBwZXJDYXNlKGMpOwoJCQloYXNkaWdpdCA9IGhhc2RpZ2l0IHx8IENoYXJhY3Rlci5pc0RpZ2l0KGMpOwoJCX0KCQlmaW5hbCBib29sZWFuIHBhc3N3b3JkbGVuZ3RoID0gKHBhc3N3b3JkLmxlbmd0aCgpID49IDYpOwoJCgkJaWYgKCFoYXNsb3dlcmNhc2UpCgkJCVN5c3RlbS5vdXQucHJpbnRsbigiUGFzc3dvcmQgbmVlZHMgdG8gY29udGFpbiBhdCBsZWFzdCBvbmUgbG93ZXJjYXNlIGxldHRlciIpOwoJICAJaWYgKCFoYXN1cHBlcmNhc2UpIAoJCQlTeXN0ZW0ub3V0LnByaW50bG4oIlBhc3N3b3JkIG5lZWRzIHRvIGNvbnRhaW4gYXQgbGVhc3Qgb25lIHVwcGVyY2FzZSBsZXR0ZXIiKTsKCQlpZiAoIWhhc2RpZ2l0KQoJCQlTeXN0ZW0ub3V0LnByaW50bG4oIlBhc3N3b3JkIG5lZWRzIHRvIGNvbnRhaW4gYXQgbGVhc3Qgb25lIGRpZ2l0Iik7CgkJaWYgKCFwYXNzd29yZGxlbmd0aCkKCQkJU3lzdGVtLm91dC5wcmludGxuKCJQYXNzd29yZCBuZWVkcyB0byBoYXZlIDYgb3IgbW9yZSBjaGFyYWN0ZXJzIik7CgkJaWYgKCFoYXNsb3dlcmNhc2UgfHwgIWhhc3VwcGVyY2FzZSB8fCAhaGFzZGlnaXQgfHwgIXBhc3N3b3JkbGVuZ3RoKQoJCQljb250aW51ZTsKCQkKCQlTeXN0ZW0ub3V0LnByaW50KCJFbnRlciBwYXNzd29yZCBhZ2FpbiB0byB2ZXJpZnkiKTsKCQlmaW5hbCBTdHJpbmcgcGFzc3dvcmQyID0gaW5wdXQubmV4dExpbmUoKTsKCQkKCQlpZiAocGFzc3dvcmQuZXF1YWxzKHBhc3N3b3JkMikpIHsgCgkgIAkJU3lzdGVtLm91dC5wcmludGxuKCJZb3UgaGF2ZSBlbnRlcmVkIGEgdmFsaWQgcGFzc3dvcmQiKTsKCSAgCQlicmVhazsKCQl9IGVsc2UgewoJCQlTeXN0ZW0ub3V0LnByaW50bG4oIlBhc3N3b3JkIGRvZXMgbm90IG1hdGNoLiBTdGFydCBvdmVyIik7CgkJCWNvbnRpbnVlOwoJCX0KCX0KfQoKfQ==