java - 如何在JAVA中检查是否有2个大写字母、3个小写字母和1个数字
问题描述
请帮助我已经被困了一个下午的大部分时间,并且无法真正从其他资源中找到/理解答案。我需要接收用户输入的密码,并需要测试密码是否包含:
- 两个大写字母
- 三个小写字母
- 一个号码
这是我的代码:
import javax.swing.JOptionPane;
public class PracticePassword {
public static void main(String[] args) {
String originalPw;
// TODO Auto-generated method stub
String newPw;
int pwLength;
int i;
char c;
newPw = JOptionPane.showInputDialog(null, "Please enter a password" +
" that contains the following:" + "\n"
+ "**TWO upper case letters" + "\n" + "**THREE lower case letters" + "\n"
+ "**ONE number");
originalPw = newPw;
pwLength = newPw.length();
for (i = 0; i <= pwLength; i++) {
boolean hasUpperCase = !originalPw.equals(originalPw.toUpperCase());
boolean hasLowerCase = !originalPw.equals(originalPw.toUpperCase());
if(!hasUpperCase){
System.out.println("You have three upper case letters, good job.");
}
else {
System.out.println("You must have three upper case letters");
}
}
}
}
如果看起来我不知道我最后在做什么,那是因为我不知道。请帮忙。谢谢你:)
谢谢大家的回复。我应该更具体。我想我应该问我是否可以在我的代码中实现任何方法或结构,以确保用户输入符合这些规范。我现在看到我的代码非常不完整。我现在正在复习笔记以改进我的代码。
解决方案
这看起来像一个家庭作业问题,所以我不会直接解决它。但是,您可以采取以下步骤:
创建一个方法来验证输入 (
public static boolean isValid(String str)
)将 转换
String
为字符Array
。(有一种方法!)遍历字母并跟踪有多少个大写和小写字母以及有多少个数字。(使用
Character.isDigit()
和)Character.isUpperCase()
Character.isLowerCase()
如果满足所有要求,则返回 true。否则返回假。
推荐阅读
- c# - 未经确认的电子邮件登录:尽管“options.SignIn.RequireConfirmedEmail = false;”,但 PasswordSignInAsync 返回“NotAllowed”结果
- html - 使 div 不影响其他 div 的大小
- javascript - 如何对设置超时的功能做出反应
- javascript - 在网页中嵌入 HTML 文档,而不是来自 URL
- python - 为什么keras说我只有一个标签而不是三个
- c - 尝试编译 C 文件时出错:mkfifo:无法创建 fifo 'stderr':不支持操作
- python - brew 安装最新的 python3 但 python3 没有更新?
- npm - GatsbyJS - 无法解析“babel-runtime/helpers/possibleConstructorReturn”
- python - 如何为 aws lambda 处理函数(Python)编写单元测试
- html - 使图像的底部有点暗