使用“。length”方法显示人名中的字母数时,也会计算名称之间的空格

时间:2017-08-25 14:07:23

标签: ruby

puts "HELLO"

print "ENTER YOUR NAME: "

name=gets.chomp

name.capitalize!

puts name

x=name.length


puts "YOUR NAME IS MADE UP OF " + x.to_s + " LETTERS !"

这里的错误是什么,导致名称之间的空格被计算?

例如我输入Adolf Hitler,字母数量显示为12,但应为11。

2 个答案:

答案 0 :(得分:1)

您可以使用count

'ADOLF HITLER'.count('A-Z') #=> 11 

tr

'adolf hitler'.tr(' ','').length #=> 11

gsub可能更安全

'adolf hitler'.gsub(/\s+/,'').length #=> 11

答案 1 :(得分:1)

所以,如果我理解正确,当你使用:

irb(main):001:0> "Peter Camilleri".length
=> 15

包含您不想要的空间。这个替代方案怎么样:

irb(main):002:0> "Peter Camilleri".split.join.length
=> 14

没有更多的空间!