【问题标题】:Calculate occurrence of given letter in sentence in Java [duplicate]计算Java句子中给定字母的出现次数[重复]
【发布时间】:2018-11-21 10:41:49
【问题描述】:
String sentence = JOptionPane.showInputDialog (null, "Write a sentence.");    
String letter = JOptionPane.showInputDialog(null, "Write a letter");

while (true) {

    if (letter.equals("Stop"))
        System.exit(0);    
    //to calculate number of specific character
    else {
        int countLetter = 0;
        int L = letter.length();
        for (int i = 0; i < L; i++) {
            if ((letter.charAt(i) = .....))     
                countLetter++;
        }
    }
}

是否可以替换点以使程序计算给定字母在第一个字符串中写入的句子中出现的次数?

【问题讨论】:

  • 当然,但它是==,而不是=,您可能还想循环浏览sentence。换句话说,除了..... 之外,您还缺少一段代码
  • 欢迎来到 Stack Overflow,Sandra。再看一遍你的代码,我认为你的想法有一些错误。您正在迭代letter 中的字符,但letter 应该只包含一个字母,对吗?所以迭代它对我来说似乎是一个错误。我认为您应该在代码中将其替换为sentence,然后检查sentence.charAt(i) == letter.charAt(0)

标签: java


【解决方案1】:

从 Java 8 开始,有一个优雅的解决方案。

int count = letter.chars().filter(ch -> ch == 'e').count();

这将返回字母“e”的出现次数。

【讨论】:

    【解决方案2】:

    如果您的String 字母包含一个字符,请使用此letter.charAt(0),然后用此替换点。还要记住在这里使用== 而不是== 表示您只是在分配,== 用于比较两个值。

    【讨论】:

      【解决方案3】:

      如果您必须使用for 循环并想坚持老式的方式,试试这个:

          String sentence = "This is a really basic sentence, just for example purpose.";
          char letter = 'a';
      
          int occurrenceOfChar = 0;
      
          for (int i = 0; i < sentence.length(); i++) {
              if (sentence.charAt(i) == letter) {
                  occurrenceOfChar++;
              }
          }
      
          System.out.println("The letter '" + letter
                  + "' occurs " + occurrenceOfChar
                  + " times in the sentence \""
                  + sentence + "\"");
      

      句子和字母只是示例,您必须阅读用户输入。

      【讨论】:

        【解决方案4】:

        您可以使用Guava Lib 更快地执行此操作而无需迭代字符串。

        CharMatcher.is('e').countIn("Write a letter");
        

        将返回 3

        【讨论】:

        • 坦率地说,我建议不要为这种微不足道的事情添加外部库。
        • 你是对的,但我只是建议他们是否可以使用相同的 Lib。 @Federico klez 库洛卡
        • 我不认为 OP 处于学习语言的阶段,使用库不利于他们的学习进度
        猜你喜欢
        • 1970-01-01
        • 2013-11-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-04
        • 2013-09-08
        • 2021-09-17
        • 1970-01-01
        相关资源
        最近更新 更多