计算单词中的字母

时间:2015-08-17 13:40:05

标签: ruby string

我想计算字符串中存在的小写字母。说我有:

a = "SaMarMiShrA"

我知道a.count(" a-z")会给出答案。但是如果没有内置方法,如何不使用它。

然后,

def count_small_letters
  #code
end
a.count_small_letters

应返回6,因为在"SaMarMiShrA"中,小写字母的数量为6.请为此建议解决方案。

3 个答案:

答案 0 :(得分:5)

使用count

=> "SaMarMiShrA".count("a-z")
#> 6
=> "SaMarMiShrA".count("A-Z")
#> 5

其他方式:

=> "SaMarMiShrA".chars.find_all { |x| /[[:lower:]]/.match(x) }.count
#> 6

答案 1 :(得分:2)

既然你希望能够做“无论什么”.count_small_letters你就必须修补字符串所以

class String
  def count_small_letters
    #any of @Зелёный suggestions or
    scan(/[a-z]/).count
  end
end

然后:

> " SaMarMiShrA".count_small_letters
> 6

答案 2 :(得分:1)

你可以这样做:

def lower_case(string)
  count = 0
  string.split(//).each do |char|
    if char == char.downcase
      count += 1
    end
  end
  return count
end

puts lower_case("AAAaaa")

=> 3