我不明白用字符串中的数字来访问某个单词的最佳方法。
我尝试使用[]
来访问某个字词,但它会返回字母。
puts s
# => I went for a walk
puts s[3]
# => w
答案 0 :(得分:4)
您正在做的事情将访问字符串s
的第四个字符。
将字符串拆分为数组,然后按如下方式访问第四个元素。
puts s.split[3]
注意:调用不带参数的split将字符串分隔为空格。
编辑:修复索引。索引从0开始。这意味着s.split [3]将访问第四个元素。
答案 1 :(得分:1)
你要求字符串中的第四个字符,因为你开始计数0
p "I went for a walk"[3]
# "e"
相反,您可以将字符串拆分为单词,但不要仅使用拆分本身,因为它只会在空格上拆分,而通常您应该使用像这样的小正则表达式拆分所有字边界。然后删除由逗号和其他边界引起的任何空元素。
p "I went for a walk, it was warm outside".split(/\W/).reject(&:empty?)
# ["I", "went", "for", "a", "walk", "it", "was", "warm", "outside"]
p "I went for a walk, it was warm outside".split(/\W/).reject(&:empty?)[1]
# "went"
答案 2 :(得分:0)
您也可以这样做:
s.scan(/\w+/)[1]
=> "went"
答案 3 :(得分:0)
s = "I went for a walk"
puts s.scan(/\w+/)[2]
=> for
如果要访问第一个单词,请确保通过访问索引0来执行第四个单词。
e.g:
s.scan(/\w+/)[0]
=> I