Я пытаюсь проверить, содержит ли строка все буквы алфавита. Я создал ArrayList
, который содержит весь алфавит. Я преобразовал строку в массив char, и я выполняю итерацию через массив символов, и для каждого символа, присутствующего в ArrayList
, я удаляю из него элемент. И в конце концов, я пытаюсь проверить, не пуст ли Arraylist
, чтобы удалить все элементы. Это означало бы, что строка содержит все буквы алфавита.Как проверить, содержит ли строка все буквы алфавита?
К сожалению, код бросает IndexOutOfBoundsException
ошибку внутри, если состояние, когда я удаление элементов из ArrayList
List<Character> alphabets = new ArrayList<Character>();
alphabets.add('a');
alphabets.add('b');
alphabets.add('c');
alphabets.add('d');
alphabets.add('e');
alphabets.add('f');
alphabets.add('g');
alphabets.add('h');
alphabets.add('i');
alphabets.add('j');
alphabets.add('k');
alphabets.add('l');
alphabets.add('m');
alphabets.add('n');
alphabets.add('o');
alphabets.add('p');
alphabets.add('q');
alphabets.add('r');
alphabets.add('s');
alphabets.add('t');
alphabets.add('u');
alphabets.add('v');
alphabets.add('w');
alphabets.add('x');
alphabets.add('y');
alphabets.add('z');
// This is the string- I've just put a random example
String str = "a dog is running crazily on the ground who doesn't care about the world";
//Remove all the spaces
str = str.replace(" ", "");
// Convert the string to character array
char[] strChar = str.toCharArray();
for (int i = 0; i < strChar.length; i++) {
char inp = strChar[i];
if (alphabets.contains(inp)) {
alphabets.remove(inp);
}
}
if (alphabets.isEmpty())
System.out.println("String contains all alphabets");
else
System.out.println("String DOESN'T contains all alphabets");
Вместо того, чтобы делать «Список», вы могли бы просто зациклиться как 'int i = (int) 'a'; i <= 'z'' – SomeJavaGuy
Все [алфавиты] (https://en.wikipedia.org/wiki/List_of_writing_systems#True_alphabets)? Как греческий (αβγδε ... ψω) и русский (абвгд ... юя)? Или вы имели в виду «все буквы» (ака английского) алфавита »(abcde ... yz)? – Andreas
Связанные: [Эффективные конструкции языка Java, чтобы проверить, является ли строка pangram?] (Http://stackoverflow.com/q/37880301/2513200) – Hulk