如何检查JAVA中是否有2个大写字母,3个小写字母和1个数字

时间:2018-10-12 22:20:50

标签: java string passwords uppercase lowercase

请帮助我已经困了一个下午的大部分时间,无法真正找到/理解其他资源的答案。我需要接收来自用户的密码输入,并且需要测试密码是否包含:

  • 两个大写字母
  • 三个小写字母
  • 一个号码

这是我的代码:

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");
            }
        }

    }   
}

如果看起来我不知道我到底要做什么,那是因为我不知道。请帮忙。谢谢:)

感谢大家的答复。我应该更具体一些。我想我应该问的是是否有任何方法或可以在代码中实现的结构,以确保用户输入符合这些规范。现在我看到我的代码非常不完整。我现在翻阅笔记以改善代码。

1 个答案:

答案 0 :(得分:0)

这看起来像是一个作业问题,所以我不会直接解决。但是,您可以采取以下步骤:

  • 创建一种方法来验证输入(public static boolean isValid(String str)

  • String转换为字符Array。 (有一种方法!)

  • 遍历字母,并跟踪有多少个大写和小写字母以及多少个数字。 (使用Character.isDigit()Character.isUpperCase()Character.isLowerCase()

  • 如果满足所有要求,则返回true。否则返回false。