Java Puzzle – Проверьте, содержит ли строка все алфавиты

1. Что такое полная строка?

Строка считается полной, если она содержит все символы от a до z. Если в ней отсутствует хотя бы один символ, она считается неполной строкой.

Например, следующая строка является полной строкой. Она содержит все символы алфавита.

qwertyuioplkjhgfdsazxcvbnm

2. Программа Java, использующая цикл For

В следующей программе Java мы выполняем две проверки:

  • Если длина строки меньше 26, то определенно пропущен один или несколько символов.
  • В цикле for мы проверяем каждый символ в строке(без учета регистра), и даже если хотя бы один символ отсутствует, мы возвращаем false.
public static boolean checkAllAlphabets(String input) {//If input length is less than 26 then it can never be completeif(input.length() < 26) {return false;}//Even a single character is missing, return falsefor(char ch = 'A'; ch <= 'Z'; ch++) {if(input.indexOf(ch) < 0 && input.indexOf((char)(ch + 32)) < 0) {return false;}}return true;}

3. Программа Java с использованием Regex

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

public static boolean checkAllCharsUsingRegex(String input) {//If input length is less than 26 then it can never be completeif(input.length() < 26) {return false;}//Even a single character is missing, return falseString regex = "(?i)(?=.*a)(?=.*b)(?=.*c)(?=.*d)(?=.*e)(?=.*f)"+ "(?=.*g)(?=.*h)(?=.*i)(?=.*j)(?=.*k)(?=.*l)(?=.*m)(?=.*n)"+ "(?=.*o)(?=.*p)(?=.*q)(?=.*r)(?=.*s)(?=.*t)(?=.*u)(?=.*v)"+ "(?=.*w)(?=.*x)(?=.*y)(?=.*z).*";if(input.matches(regex)) {return true;}return false;}
Прокрутить вверх