2015-12-19 5 views
-3

Я пытаюсь написать программу на Java, которая включает в себя получение числа символов из strıng и если количество символов находится между 6-10 и, если есть верхний регистр, нижний регистр, гласный он будет печатать пароль, если он не будет напечатан. ypu не может использовать этот пароль.Обработка ввода в Java

+1

Если вы новичок, то это хорошая практика, чтобы выяснить самостоятельно. По крайней мере, сделайте некоторые попытки, и покажите свой код, если вы застряли на чем-то. – nedenom

ответ

1

Эта программа считывает ввод с консоли. Для каждой строки ввода он будет проверять, соответствуют ли все упомянутые критерии и выводит ли их использование или нет.

import java.util.*; 

public class PasswordValidator{ 
    private static final ArrayList<Character> vowels = new ArrayList(Arrays.asList('a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U')); 

    private static boolean isCorrectLength(String password){ 
    int passwordLen = password.length(); 
    if(passwordLen >= 6 && passwordLen <= 10) 
     return true; 
    return false; 
    } 

    private static boolean containsVowel(String password){ 
    for(int i = 0; i < password.length(); i++){ 
     if(vowels.contains(password.charAt(i))){ 
     return true; 
     } 
    } 
    return false; 
    } 

    private static boolean containsLowerCase(String password){ 
    for(int i = 0; i < password.length(); i++){ 
     if(password.charAt(i) == Character.toLowerCase(password.charAt(i))){ 
     return true; 
     } 
    } 
    return false; 
    } 

    private static boolean containsUpperCase(String password){ 
    for(int i = 0; i < password.length(); i++){ 
     if(password.charAt(i) == Character.toUpperCase(password.charAt(i))){ 
     return true; 
     } 
    } 
    return false; 
    } 

    public static void main(String[] args){ 
    Scanner sc = new Scanner(System.in); 
    while(sc.hasNextLine()){ 
     String result = sc.nextLine(); 
     if(containsUpperCase(result) && containsLowerCase(result) && 
     containsVowel(result) && isCorrectLength(result)) 
     System.out.printf("This is a usable password\n"); 
     else 
     System.out.printf("You cannot use this password\n"); 
    } 
    } 
} 
1

Попробуйте

String p = "PassWord"; 
    System.out.println(p.length() >= 6 && p.length() <= 10 
      && p.matches(".*[a-z].*") && p.matches(".*[A-Z].*") 
      && p.matches(".*[aeiouAEIOU].*") 
      ? "password is usable" : "ypu cannot use this password"); 
Смежные вопросы