当前位置: 首页 > 知识库问答 >
问题:

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

万俟渊
2023-03-14

我有一个包含50000个单词的单词列表,还有一个逐行查找字母字符的txt文件。我试图通过按顺序阅读单词列表中的单词来找到包含7个不同字母的单词,我为此编写了一个方法。

首先,我浏览单词并同步字符列表,然后通过导航字母txt文件在单词中相互检查,如果有,则增加计数器。通过这种方式,我试图了解单词中有多少不同的字母,最后,如果它提供了控制,我会将其添加到列表中。

读取txt文件并返回哈希集。

但它不是这样工作的,返回一个空列表。我找不到问题。我该怎么做?

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;
    }
}

共有1个答案

双浩涆
2023-03-14

也许我误解了您的代码,但看起来您并没有在每个循环回合中清空“ch”变量。

 类似资料:
  • 我有一个列表的数据集,其中包含其他列表,我想找到前1000个单词 我试过这个,但不起作用: 从集合导入计数器counts_top1000=[逐字,Counter(mainlist).MOST_COMMAN(1000)] 请注意,我的数据集是“mainlist”。 如果你有更多的想法,我将不胜感激。

  • 我有一篇很长的文章,还有一长串我想在这篇文章中找到的单词。 现在,为了搜索这些单词,我检查“正则表达式”,然后找到“word1 | word2 | word3 | word4…”问题是,如果其中一个单词是“eat”,那么包含“eat”的每个单词也会高亮显示。我怎样才能防止呢?

  • 我正在做一个有趣的小问题,是一个朋友寄给我的。这个问题要求我使用文本文件中的常用词填充数组,然后打印此列表中包含用户提供的某些字符的所有词。我能够填充我的数组没有问题,但是代码中实际比较两个列表的部分似乎不起作用。下面是我编写的用于比较这两个列表的函数。 代码运行得很好,我没有得到任何错误输出,但是一旦用户输入了他们的字母列表,就什么也没有发生。为了测试,我尝试了一些与我知道的单词列表中的单词相匹

  • 问题内容: 我有一个停用词列表。我有一个搜索字符串。我想从字符串中删除单词。 举个例子: 现在,代码应删除“ What”和“ is”。但是在我的情况下,它会去除“ a”和“ at”。我在下面给出了我的代码。我可能做错了什么? 如果输入查询为“什么是Hello”,则输出为: 为什么会这样? 问题答案: 这是一种方法: 我注意到,如果列表中包含小写字母,您还希望删除该单词,因此我在条件检查中添加了对的

  • 问题内容: 这是一个聊天页面。我有一个。我有BADWORDS的数组:。我如何检查是否包含中的任何单词? 到目前为止,我有: 除非我这样做,否则当用户在列表中键入单词时,输出为NO!其次是!因此出于某种原因,代码会将其运行两次。 问题答案: 在不浪费时间和使用这些古老而又漫长的解决方案的情况下,最好的选择应该是: 如果这对您有用,请别忘了投票

  • 问题内容: 那么,如何检查字符串中是否包含特定单词? 这是我的代码: 我遇到了错误。 问题答案: 并不像他们所说的那么复杂,选中此选项您不会后悔。 您可以根据需要更改。