从单词列表中查找包含不同字符的单词



我有一个包含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 '变量。

相关内容

  • 没有找到相关文章

最新更新