java - 我搜索实现函数获取字符串中出现次数最多的字符并对其进行计数

标签 java arrays string data-structures

public class GFG  
{ 
    static final int ASCII_SIZE = 256; 
    static char getMaxOccuringChar(String str) 
    { 

        int count[] = new int[ASCII_SIZE]; 



        int len = str.length(); 
        for (int i=0; i<len; i++) 
            count[str.charAt(i)]++; 

        int max = -1; 
        char result = ' ';   


        for (int i = 0; i < len; i++) { 
            if (max < count[str.charAt(i)]) { 
                max = count[str.charAt(i)]; 
                result = str.charAt(i); 
            } 
        } 

        return result; 
    } 

我停在这里,无法计算重复次数最多的字符。

最佳答案

问题是您应该迭代 count 数组中的字符而不是字符串内容。你已经数过了。此外,结果将是由i的值表示的字符,因此您可以将i转换为char 。最后,除非您想计算空格数,否则您应该忽略字符 32 (空格)和可能的其他空白字符,否则它们可能最终成为最常见的字符。这是一个计算最重复字符的版本:

class GFG {
    public static void main(String[] args) {
        GFG s = new GFG();
        char c = s.getMaxOccuringChar("People say there is nothing like a banana cream pie");
        System.out.println("Max char is " + c);
    }

    static final int ASCII_SIZE = 256;

    static char getMaxOccuringChar(String str) {

        int count[] = new int[ASCII_SIZE];

        int len = str.length();
        for (int i = 0; i < len; i++)
            count[str.charAt(i)]++;

        int max = -1;
        char result = ' ';


        for (int i = 0; i < count.length; i++) {
            if (max < count[i] && i != 32) {
                max = count[i];
                System.out.println("Max: "+max+" char: "+(char)i);
                result = (char)i;
            }
        }

        return result;
    }
}

这将打印出:

Max: 0 char: 
Max: 1 char: P
Max: 6 char: a
Max: 7 char: e
Max char is e

关于java - 我搜索实现函数获取字符串中出现次数最多的字符并对其进行计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61895477/

相关文章:

java - 将 Java 包分配给 JRuby 类

java - 如何在 jQuery 中从客户端向服务器发送 XML 文档

java - 在变量上使用多个 String 方法的正确方法是什么?

string - 关于KMP算法预处理函数实现

java - `+=` 运算符是否总是创建一个新的字符串对象?

java - 在静态方法中使用 Powermock 和 mockito 模拟本地范围对象

java - 编辑 TreeView 中不包含字符串的项目

javascript - 只是尝试从数组访问对象的字段,但我无法管理它

python - 使用 Numpy 进行高效求和面积表计算

c# - 如何获取文本文件中同一字符串的最后两次出现 C#