Ruby访问字符串中的单词

时间:2015-06-22 08:18:46

标签: ruby

我不明白用字符串中的数字来访问某个单词的最佳方法。

我尝试使用[]来访问某个字词,但它会返回字母。

puts s 
# => I went for a walk
puts s[3]
# => w

4 个答案:

答案 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