我想计算字符串中存在的小写字母。说我有:
a = "SaMarMiShrA"
我知道a.count(" a-z")会给出答案。但是如果没有内置方法,如何不使用它。
然后,
def count_small_letters
#code
end
a.count_small_letters
应返回6
,因为在"SaMarMiShrA"
中,小写字母的数量为6.请为此建议解决方案。
答案 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