我試圖使用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