我想獲取具有重複字符的字符串的索引。但是,如果我有相同的字符,它使返回該字符第一次出現的指數獲取紅寶石中所有字符的索引
str = "sssaadd"
str.each_char do |char|
puts "index: #{str.index(char)}"
end
Output:-
index: 0
index: 0
index: 0
index: 3
index: 3
index: 5
index: 5
我想獲取具有重複字符的字符串的索引。但是,如果我有相同的字符,它使返回該字符第一次出現的指數獲取紅寶石中所有字符的索引
str = "sssaadd"
str.each_char do |char|
puts "index: #{str.index(char)}"
end
Output:-
index: 0
index: 0
index: 0
index: 3
index: 3
index: 5
index: 5
使用Enumerator#with_index
:
str = "sssaadd"
str.each_char.with_index do |char, index|
puts "#{index}: #{char}"
end
是的,謝謝你的作品。 –
如果你想找到您還可以使用此
str = "sssaadd"
arr=str.split('')
arr.each_with_index do|char,index|
puts "index : #{index}"
end
重複子串的所有索引,你可以使用這個:
'sssaadd'.enum_for(:scan, /(.)\1/).map do |match|
[Regexp.last_match.begin(0), match.first]
end
# => [[0, "s"], [3, "a"], [5, "d"]]
在這裏,我們scan
所有的字符串由正則表達式,它發現重複的字符。訣竅是scan
的塊形式不會返回任何結果,因此爲了使其返回塊結果,我們將scan
轉換爲枚舉數並在其後添加map
以獲得所需的結果。
你是不是想總是得到所有字符加上最後的結果他們的索引位置?或者讓一些更一般的東西(即一種方法告訴你字符串中第5'z'的位置,或者一個方法,如果傳遞一個字符串和一個字符,給你所有字符的索引位置)?它可能是值得展示一個想象的功能,返回你想要的。 。 。 –