我尝试在运行时使用%w
字符串输入。当我运行这个程序时:
a = gets.chomp
puts %w(a).count
输入'hi how are you'
,输出为1
。 %w(a).count
不会使用输入字符串替换a
。
虽然%w(hi how are you).length
为4
,但%w(a)
将a
视为单个实体,其count
值为1
。
如何为运行时输入的字符串打印长度4
或任何数字?
答案 0 :(得分:2)
您可以使用String#split
。
例如:
a = "hi how are you"
a.split(" ").size
答案 1 :(得分:0)
虽然%W
进行插值(%w
没有插值),但不的行为与split
的文字字符串相似。您可以在this blog post中看到一个示例:
而且我以为我也知道
%W
- 这显然会起作用 就像%w
一样,除了评估里面的代码。除了那不是什么 它呢!%W[foo #{bar}]
不是"foo #{bar}".split
- 它是["foo", "#{bar}"]
! 当然,使用真正的解析器,所以你可以使用尽可能多的解析器 可以根据需要在代码块中使用空格。system *%W[mongod --shardsvr --port #{port} --fork --dbpath #{data_dir} --logappend --logpath #{logpath} --directoryperdb]
所以在你的情况下:
a = 'hi how are you'
%W(#{a})
# => ["hi how are you"]
因此,您的点数仍为1
。
获取4
的正确方法是使用split
...