Combine the earlier checks into a single numeric score between 0 and 100.
You start with:
val password = "Secret!99"
Build:
Length: 9 Score: 100
Rules:
- Start with
score = 0. - If the length is at least 8, add 25.
- If the password contains an uppercase letter, add 20.
- If it contains a lowercase letter, add 20.
- If it contains a digit, add 20.
- If it contains a symbol (not a letter and not a digit), add 15.
- Print
"Length: "followed by the length, then print"Score: "followed by the score.
Try other passwords: with abc123 the output is
Length: 6 Score: 40
Use the same
c.isUpper, c.isLower, c.isDigit, c.isLetterOrDigit checks, then accumulate into var score.
val password = "Secret!99"
val length = password.length
var hasUpper = false
var hasLower = false
var hasDigit = false
var hasSymbol = false
for (c <- password) {
if (c.isUpper) {
hasUpper = true
}
if (c.isLower) {
hasLower = true
}
if (c.isDigit) {
hasDigit = true
}
if (!c.isLetterOrDigit) {
hasSymbol = true
}
}
var score = 0
if (length >= 8) {
score += 25
}
if (hasUpper) {
score += 20
}
if (hasLower) {
score += 20
}
if (hasDigit) {
score += 20
}
if (hasSymbol) {
score += 15
}
println(s"Length: $length")
println(s"Score: $score")
Free plan: 30 tutor messages. Premium is unlimited.
Saved
Ctrl + Enter to check
