генерация пароля в java с использованием регулярных выражений - PullRequest
1 голос
/ 29 января 2020
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main{
    public static void main(String[] args)
    {
        Scanner sc=new Scanner(System.in);
        System.out.println("Generate your Security Code ");
        String password=sc.next();

        if(password.length()>=8)
        {
            Pattern letter = Pattern.compile("[a-z]{1}[A-z]{1}");
            Pattern digit = Pattern.compile("[0-9]");
            Pattern special = Pattern.compile ("[@#*]{1}");


               Matcher hasLetter = letter.matcher(password);
               Matcher hasDigit = digit.matcher(password);
               Matcher hasSpecial = special.matcher(password);

               if(hasLetter.find() && hasSpecial.find() &&hasDigit.find()){
                   System.out.println("Security Code Generated Successfully");
               }

        }
        else{
        System.out.println("Invalid Security Code, Try Again!");

        }
}
}

Я написал код для генерации пароля, но один тестовый случай не пройден, цифры в пароле не обязательны, как мне это сделать?

Элемент списка

1 Ответ

1 голос
/ 29 января 2020

Если вы хотите изменить регулярное выражение для необязательного di git, добавьте *. Другой способ - использовать || вместо &&

if(hasLetter.find() && hasSpecial.find() ||hasDigit.find()){
        System.out.println("Security Code Generated Successfully");
      }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...