【问题标题】:Counting a String's Lowercase Letters计算字符串的小写字母
【发布时间】:2017-03-05 15:33:28
【问题描述】:

我在论坛上四处寻找,发现了一个关于如何计算输入字符串中的小写字母的有用代码。事情是,经过测试,我发现它只计算输入的第一个单词中的小写字母。因此,例如,如果我输入:HeRE,计数器会说我输入了 1 个小写字母(这是正确的),但如果我输入:HeRE i am 计数器仍然只会说 1 而不是 4。它只计算第一个单词中的小写字母。如何让它计算整个字符串中的小写字母?

到目前为止的代码:

 import java.util.Scanner;
 public class countingLowerCaseStrings {
 public static void main(String args[]){
 Scanner scanner = new Scanner(System.in);

 System.out.println("Enter your string: ");
 String input = scanner.next();

 int LowerCaseLetterCounter = 0;
   for (char ch : input.toCharArray()) {
     if (Character.isLowerCase(ch)) {
     LowerCaseLetterCounter++;
  }
}

   System.out.println ("Number of lower case letters in this string is: " +
   LowerCaseLetterCounter);

   }

  }

非常感谢您的帮助!

【问题讨论】:

    标签: java string lowercase


    【解决方案1】:

    scanner.next(); 读取第一个可用单词,而不是整行。

    因此,如果您输入“HeRE i am”,它只会显示“HeRE”。

    改成scanner.nextLine():

    System.out.println("Enter your string: ");
    String input = scanner.nextLine();
    

    DEMO - 查看stdinstdout 面板。

    【讨论】:

    • 我完全错过了!谢谢老兄,很容易修复,我不敢相信我没有注意到它!你真棒! ;)
    【解决方案2】:

    有趣的是,Java 8 提供了一种相当简化的方式来实现相同的目标:

    scanner.nextLine().chars().filter(Character::isLowerCase).count()
    

    【讨论】:

      猜你喜欢
      • 2020-01-04
      • 2014-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-11
      • 1970-01-01
      • 1970-01-01
      • 2013-08-10
      相关资源
      最近更新 更多