【问题标题】:Java: Find greatest number of occurrences of a letterJava:查找出现次数最多的字母
【发布时间】:2015-02-06 20:33:50
【问题描述】:

我是 Java 新手,所以如果你能为我保留一些基本的东西,那就太好了。

我计算了字母表中每个字母的出现百分比。我想找到出现次数最多的字母。

{ 计算每个字母出现次数的代码 }

      aCounter/=letterCounter; 
      bCounter/=letterCounter;
      cCounter/=letterCounter;
      dCounter/=letterCounter; 

      double largest = aCounter;
      char character = 'A';
      if  (bCounter > largest)
            largest = bCounter;
            character = 'B';
      if  (cCounter > largest)
            largest = cCounter;
            character = 'C';
      if  (dCounter > largest )
            largest = dCounter;
            character = 'D'

      System.out.printf ("%c %.2f",character, largest);  

这段代码现在只是打印 D。

谢谢大家的帮助!!

【问题讨论】:

  • 不要为此感到难过(不赞成投票)。发生在我们最好的人身上。 “转到失败”
  • 是的,我想问为什么我被否决了。感谢您的评论 :) 并感谢大家的帮助!程序现在完美运行

标签: java letter


【解决方案1】:

你缺少大括号:

    if  (bCounter > largest) {
        largest = bCounter;
        character = 'B';
    }
    if  (cCounter > largest) {
        largest = cCounter;
        character = 'C';
    }
    if  (dCounter > largest ) {
        largest = dCounter;
        character = 'D';
    }

您的 character = ... 语句不是 if 条件的一部分,因此它们总是被执行,并且由于 character = 'D'; 是最后一个,所以这是打印的字符。

【讨论】:

  • 程序现在运行顺利,感谢帮助!!
【解决方案2】:
if  (dCounter > largest )
        largest = dCounter;
        character = 'D';

这里需要括号:

if  (dCounter > largest ){
        largest = dCounter;
        character = 'D';
}

否则解析为

if  (dCounter > largest )
        largest = dCounter;
character = 'D';

使用带代码格式化的 IDE 可以省去很多麻烦。自动缩进很快就会使这一点变得明显。

【讨论】:

  • 好电话,下次我一定会这样做!谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-03-28
  • 1970-01-01
  • 1970-01-01
  • 2023-03-06
  • 1970-01-01
  • 1970-01-01
  • 2021-03-19
相关资源
最近更新 更多