如何检查JAVA中是否有2个大写字母、3个小写字母和1个数字
How to check if there are 2 upper case letters, 3 lower case letters, and 1 number in JAVA
请帮忙,我已经被困了一个下午的大部分时间,无法从其他资源中真正 find/understand 回答。我需要接收用户输入的密码,需要测试密码是否包含:
- 两个大写字母
- 三个小写字母
- 一个数
这是我的代码:
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()
and Character.isLowerCase()
)
如果满足所有要求,则return为真。 Return 否则为假。
请帮忙,我已经被困了一个下午的大部分时间,无法从其他资源中真正 find/understand 回答。我需要接收用户输入的密码,需要测试密码是否包含:
- 两个大写字母
- 三个小写字母
- 一个数
这是我的代码:
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()
andCharacter.isLowerCase()
)如果满足所有要求,则return为真。 Return 否则为假。