我正在尝试使用 Ruby 返回字符串中特定字符的所有出现位置索引。例如,给定字符串为
"a#asg#sdfg#d##"
,期望返回结果为在搜索#
字符时得到[1,5,10,12,13]
。下面的代码可以实现此任务,但肯定还有更简单的方法吧?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
[x, y]
的 2 个参数版本表示“从x
开始长度为y
的子字符串”,这与[x]
相同,它表示“在x
处的字符(也是一个字符串,因为 Ruby 没有 Char 类型)”。 - Eric Haynes