Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package passwordchecking;
- public class PasswordChecking {
- public static void main(String[] args) {
- java.util.Scanner Inputs;
- Inputs = new java.util.Scanner(System.in);
- System.out.println("Enter your password:\n" +
- " -Must be at least 8 characters\n" +
- " -One alpha character [a-z, A-Z]\n" +
- " -One numeric character [0-9]\n" +
- " -One special character\n" +
- " -Cannot contain any spaces\n" +
- " -Cannot begin with ! or ?\n" +
- " -Cannot repeat same character 3 times\n");
- while (true) {
- String OP = Inputs.nextLine();
- StringBuilder Problems = new StringBuilder();
- if (CheckBegins(OP)) Problems.append(" -Cannot begin with ! or ?\n");
- if (!Check8Char(OP)) Problems.append(" -Must be at least 8 characters\n");
- if (!ContainsAlpha(OP)) Problems.append(" -Must contain at least 1 letter\n");
- if (!ContainsNumeric(OP)) Problems.append(" -Must contain at least 1 number\n");
- if (ContainsSpaces(OP)) Problems.append(" -Cannot contain any spaces\n");
- if (!ContainsSpecial(OP)) Problems.append(" -Must contain at least 1 special character\n");
- if (ContainsRepitition(OP)) Problems.append(" -Cannot repeat same character 3 times\n");
- if (Problems.length() == 0) {
- System.out.println("\nRe-enter your password:\n");
- String RepeatPassword = Inputs.nextLine();
- if (CheckSame(OP, RepeatPassword)) break;
- Problems.append(" -Re-entered password miss-match\n");
- }
- System.out.println("\nEntered password is invalid, try again!");
- System.out.println(Problems);
- }
- Inputs.close();
- System.out.println("\nNew password accepted!");
- }
- public static boolean CheckBegins(String input) {
- return input.startsWith("!") || input.startsWith("?");
- }
- public static boolean Check8Char(String input) {
- return input.length() > 7;
- }
- public static boolean ContainsAlpha(String input) {
- char[] Chars = input.toCharArray();
- for (char Char : Chars)
- if (Character.isLetter(Char)) return true;
- return false;
- }
- public static boolean ContainsNumeric(String input) {
- char[] Chars = input.toCharArray();
- for (char Char : Chars)
- if (Character.isDigit(Char)) return true;
- return false;
- }
- public static boolean ContainsSpaces(String input) {
- return input.contains(" ");
- }
- public static boolean ContainsSpecial(String input) {
- char[] Chars = input.toCharArray();
- for (char Char : Chars) {
- if (Char == ' ') continue;
- if (!Character.isLetter(Char) && !Character.isDigit(Char)) return true;
- }
- return false;
- }
- public static boolean ContainsRepitition(String input) {
- int count = 1;
- char CrntChar = input.charAt(0);
- char[] Chars = input.toCharArray();
- for (char Char : Chars){
- if (Char == CrntChar) {
- count++;
- if (count == 3) return true;
- } else {
- CrntChar = Char;
- count = 1;
- }
- }
- return false;
- }
- public static boolean CheckSame(String input1, String input2) {
- return input1.equals(input2);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment