【发布时间】:2019-05-15 05:30:21
【问题描述】:
我被分配的程序有以下规则:
规则:
- 字符数必须在 [6, 10] 中
2. ['a', 'z'] 范围内必须有 >= 2 个字符
3. ['A', 'Z'] 范围内必须有 >= 2 个字符
- 在 ['0', '9'] 范围内必须有 >= 2 个字符
例如,pw1("aaBC09-+") 应该返回 true,而 pw1("aabC09-+") 应该返回 false。
我已附上我的代码,但我可以使用更高效/更简洁的代码吗?
import java.util.*;
public class PassChecker2 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
// Prompt User to Enter String
System.out.print("Enter Password: ");
// Grab User Generated String
String pw = input.next();
// Pass String to be Checked
boolean valid_pw = checkPW(pw);
if(valid_pw)
System.out.println(pw + " is a valid password!");
else
System.out.println(pw + " is not a valid password!");
}
public static boolean checkPW(String pw)
{
int pwLowerCase = 0,
pwUpperCase = 0,
pwNumber = 0;
// Return False if PW is too Small / Large
if(!(pw.length() >= 2 && pw.length() <= 10))
return false;
for(int position = 0; position < pw.length(); ++position)
{
char character = pw.charAt(position);
if(character >= 'a' && character <= 'z')
++pwLowerCase;
else if(character >= 'A' && character <= 'Z')
++pwUpperCase;
else if(character >= '1' && character <= '9')
++pwNumber;
}
return (pwLowerCase >= 2 && pwUpperCase >= 2 && pwNumber >= 2);
}
}
【问题讨论】:
-
我要在其他人之前说这个 - 忽略任何告诉您将此问题带到任何其他站点的人。无视他们;那些 cmets 是噪音。
-
您似乎没有将
0算作数字。除此之外,它看起来还不错。 -
您可能会发现Reference - Password Validation 很有用。
标签: java password-checker