我试图使用Ruby将索引返回到字符串中特定字符的所有匹配项。示例字符串是"a#asg#sdfg#d##"
,当搜索#
字符时预期回报为[1,5,10,12,13]
。下面的代码可以完成这项工作,但是必须有一个更简单的方法来做到这一点?返回ruby中字符串中所有字符的索引
def occurances (line)
index = 0
all_index = []
line.each_byte do |x|
if x == '#'[0] then
all_index << index
end
index += 1
end
all_index
end
s =“a#asg#sdfg#d ##” a =(0 ... s.length).find_all {| i | s [i] =='#'}应该工作得对吗?不需要,1 ...? –
@SamJoseph在这种情况下,是的,两者是同义词。 '[x,y]'的2个参数版本意味着“从'x'开始的长度为'y'的子字符串,它与'[x]'相同,这意味着”字符在'x'(也是一个字符串,因为红宝石没有Char类型)“。 – erich2k8