如何找到频率相同的最多字母

how to find the most letter(s) with the same frequency

我刚开始使用 java,我正在尝试创建一个嵌套的 for 循环(不使用数组),它会告诉我有多少个字母(来自字母表)在字符串中的频率为零。因此,如果我的字符串是 "test",那么它应该显示“23 个字母”作为答案,因为 26 个字母中只有 3 个在字符串中。但是,我的程序缺少信息。我试图确保我的程序可以针对我正在寻找的特定频率。 0.

到目前为止,这是我的程序:

public class FindMaxandMinofString {

public static void main(String[] args) {         

char charToLookFor;
String s = "test";
int count = 0;

for (charToLookFor = 'a'; charToLookFor = 'z' ;charToLookFor++)
{
    for(int l = 0; l < s.length(); l++) {
        if(s.charAt(l) == charToLookFor)
        count++;
}
System.out.print(count); 

}

您可以使用散列集完成此任务 - 当您找到一个字符时,将其添加到散列集中。在遍历整个字符串后,您的答案将是 26 减去最终哈希集的大小。

不要从 0 开始计数,而是从 26 开始计数,每当找到新字母时从中减去。当你找到一个时,它会从循环中导入到 break,否则你可能会多次计算每个字母。

public class FindMaxandMinofString {

    public static void main(String[] args) {         

        char charToLookFor;
        String s = "test";
        int count = 26;

        for (charToLookFor = 'a'; charToLookFor <= 'z' ;charToLookFor++)
        {
            for(int l = 0; l < s.length(); l++)
            {
                if(s.charAt(l) == charToLookFor)
                {
                    count--;
                    break;
                }
            }
        }
        System.out.print(count + " letters");
    }
}