Идентификация двойных букв в наборе для каждой буквы алфавита — Java

#java #arrays #set

Вопрос:

Я пишу на языке программирования Java.

Цель этого кода состоит в том, чтобы пройти через набор и вернуть массив всех наборов слов, содержащих двойные буквы (для каждой буквы алфавита должно быть по одной).

Это код, который у меня есть до сих пор, прямо сейчас он возвращает число 23, когда должно быть 26 (опять же, для каждой буквы алфавита). Любые указания о том, что я делаю неправильно, были бы так полезны!

 /**  * Returns an array of all sets of words containing double letters,  * one set for each letter of the alphabet. There should be a set  * for all words containing "aa", one for "bb", etc.  * @param words set of words  * @return array of sets, one for each doubled letter in the alphabet  */  public Setlt;Stringgt;[] allWordSetsContainingDoubleLetters(Setlt;Stringgt; words)  {  Setlt;Stringgt; sets[] = new HashSet[26];  int count = 0;   for (String word : words)   {  String lowerCase = word.toLowerCase();  for (int i = 0; i lt;= sets.length; i  )   {  char c = (char) ('a'   i);  String str = ""   c   c;  if (lowerCase.contains(str))   {  if (sets[i] == null)   {  sets[i] = new HashSetlt;Stringgt;();  count  ;  }  sets[i].add(word);  }  }  }    Setlt;Stringgt; result[] = new HashSet[count];    count = 0;    for (Setlt;Stringgt; s : sets)   {  if (s != null)   {  result[count  ] = s;  }  }    return result;  }  

Комментарии:

1. i lt;= sets.length похоже на потенциальную ошибку за пределами допустимого.