我有一个包含50,000个单词的单词列表,我还有一个txt文件,它逐行查找字母表字符。我试图通过按顺序阅读单词列表中的单词来找到包含7个不同字母的单词,并为此编写了一个方法。
首先,我浏览单词并同步字符列表,然后我通过浏览字母表txt文件来检查单词中的其他字符,如果有的话,增加counter
。通过这种方式,我试着理解单词中有多少不同的字母,在最后,如果它提供控制,我就把它添加到列表中。
WordListReader
,读取txt文件并返回HashSet
。
但是它不是这样工作的,它返回一个空列表。我找不到问题所在。我该怎么做呢?
public class Pangram {
// Method
public HashSet<String> getPangramList(HashSet<String> wordList) throws IOException {
// Path Alphabets Text File
String alphabetPath = "alphabet.txt";
// Array List and Pangram Word List
ArrayList<Character> allLetters = new ArrayList<>();
ArrayList <Character> ch = new ArrayList<>();
HashSet<String> pangramList = new HashSet<>();
// Characters List
char [] allLettersCharList;
char [] alphaCharacters;
// Alphabets Text Files Reader
WordListReader wordListReader = new WordListReader(alphabetPath);
HashSet<String> alphabetSet = wordListReader.wordReader();
Iterator<String> itr = alphabetSet.iterator();
// Word List
Iterator<String> iterator = wordList.iterator();
// Iterator
while (iterator.hasNext()) {
// Words
String pangramWord = iterator.next();
// Array List Characters
allLettersCharList = pangramWord.toCharArray();
for(int i = 0; i < pangramWord.length();i++){
ch.add(allLettersCharList[i]);
}
int counter = 0;
while (itr.hasNext()){
String alphabet = itr.next();
alphaCharacters = alphabet.toCharArray();
if(ch.contains(alphaCharacters[0])){
allLetters.add(alphabet.charAt(0));
counter++;
}
}
if(counter == 7){
pangramList.add(pangramWord);
}
}
return pangramList;
}
}
也许我误解了你的代码,但看起来你没有在每个循环中清空' ch '变量。