java - 无法让我的 for 循环给我 HashMap 中最不常见的字母

标签 java hashmap

我一切正常,除了我无法弄清楚为什么我的代码找不到最不常见的字母我有一个 for 循环,它应该找到最不常见的字母,但它没有给我任何东西。它给了我最常见但并非最不重要的。

    FileReader file = new FileReader("\\src\\alphaCounter\\");
    BufferedReader reader = new BufferedReader(file);

    HashMap<Character,Integer> myHashSet = new HashMap<Character, Integer>();

    myHashSet.put('a', 0);
    /** this goes to Z


    int mostCommon = 0;
    char mostCommonLtr = ' ';
    int leastCommont = 0;
    char leastCommonLtr = ' ';



    Object[] words = reader.lines().toArray();

    /**
     * this loop has changed all the letters to lower case
     */
    for(Object word : words){
        String wordString = word.toString();
        wordString = wordString.toLowerCase();
        /**
         * 
         */
        if(wordString.length() > bigWord.length()){
            bigWord = wordString;
        }    
        for(int alpha = 0; alpha < wordString.length(); alpha++){
            myHashSet.put(wordString.charAt(alpha), myHashSet.get(wordString.charAt(alpha)) + 1);
        }

    }

            for(int alpha = 'a'; alpha<= 'z'; alpha++){
        System.out.println("The number of " + (char)alpha +  "'s in the words.txt = " + myHashSet.get((char)alpha ));

        if(myHashSet.get((char)alpha) > mostCommon)  {
            mostCommonLtr = (char)alpha;
            mostCommon = myHashSet.get((char)alpha); 
            /**
             * this gave me the most common letter
             */


        if(myHashSet.get((char)alpha) < leastCommont)  {
            leastCommonLtr = (char)alpha;
            leastCommont = myHashSet.get((char)alpha);
            /**
             * this was supposed to give me the least common
             */
        }   
    }


    System.out.println("The letter that appeared the least is " + leastCommonLtr);  

    System.out.println("The letter that appears the most is " + mostCommonLtr); 

最佳答案

替换

int leastCommont = 0;

int leastCommont = Integer.MAX_VALUE;

原因

leastCommont初始化为 0,则您的代码永远不会满足以下条件:

if(myHashSet.get((char)alpha) < leastCommont)

关于java - 无法让我的 for 循环给我 HashMap 中最不常见的字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49420247/

相关文章:

java - JasperReports 中的 Excel 超出行数限制 65536

java - 设置依赖关系 Maven Java 项目,因此无需运行 maven install 即可立即接受更改

java - 在 Kotlin 中访问映射内的值

java - 创建自定义多键 HashMap

Java - 让 Eclipse 将不推荐使用的代码显示为错误

java - 尝试将查询结果集放入 map 时抛出意外的 NPE

java - 更改突出显示文本java的字体样式

java - 如何区分 Web 应用程序或独立应用程序?

java - 无法在 Spring boot 中使用 XmlMapper (Jackson-dataformat-xml),错误 : requiresPropertyOrdering()Z

java - 导入java.util.*后使用entrySet()函数时找不到符号