【问题标题】:Count the capitals in the word javascript [duplicate]计算单词javascript中的大写字母[重复]
【发布时间】:2022-01-09 04:45:29
【问题描述】:

) 我试图用这个语句解决一个问题:

编写一个名为 howManyCaps 的函数,它计算单词中的大写字母,然后返回一个句子,说明哪些字母是大写字母以及总共有多少个大写字母。

这是我的功能

function howManyCaps(str) {
  var count = 0;
  for (i = 0; i < str.length; i++) {
    if (str[i] == str[i].toUpperCase()) {
      console.log(true);
      count++;
    } else {
      false;
    }
  }
  return count;
}

但在控制台中,如果尝试使用 str="How many Caps" y 看到的值是 5 而不是 2。 有什么建议么? 谢谢

【问题讨论】:

  • 我猜你应该忽略空格,因为" " 大写的仍然是" ",所以它也被计算在内(你会遇到其他字符的问题,例如标点符号)

标签: javascript function loops conditional-statements capitalize


【解决方案1】:

最简单的方法是[O(N)]:

function howManyCaps(str) {
    let upper = 0;
    for (let i = 0; i < str.length; i++) {
        if (str[i] >= 'A' && str[i] <= 'Z') upper++;
    }
    return upper;
};

howManyCaps(' How many Caps');

有些人说不要使用空格或考虑空格,但这也不是一个好策略,因为它也会因特殊字符而中断。

【讨论】:

    【解决方案2】:

    问题是你的间距。

    " How many Caps"
    

    有 3 个空格和 2 个大写字母.. 这应该可以帮助您调试

    【讨论】:

      【解决方案3】:

      如果您可以使用正则表达式,我建议如下:

      function howManyCaps(str) {
          return str.length - str.replace(/[A-Z]+/g, "").length;
      }
      
      var str = " How many Caps";
      console.log("Input has " + howManyCaps(str) + " capital letters.");

      这个想法是将原始输入的长度与删除所有大写字母的输入长度进行比较。

      【讨论】:

        【解决方案4】:

        更好的方法是使用正则表达式 下面是代码

        function howManyCaps(str) {
            return str.replace(/[^A-Z]/g, '').length;
        }
        console.log(howManyCaps(" How many Caps"))

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2020-02-22
          • 1970-01-01
          • 1970-01-01
          • 2019-09-30
          • 1970-01-01
          • 2022-01-08
          相关资源
          最近更新 更多