[英]Ruby override .index() in String to search for a character or its HTML equivalent
[英]Ruby : Replace a character in a String with its index number
我想在滿足特定條件時替換字符串中的字符。 因此,我瀏覽了Ruby的API文檔,找到了gsub
, gsub!
等用於類似目的。 當我在程序中實現該功能時,我沒有出現任何錯誤,但也沒有得到所需的輸出。
我正在嘗試的代碼是這樣的:
name.each_char { |c|
if name[c] == "a"
name.sub( name[c] , c )
puts "matched.... "
end
因此,例如,我有一個名為huzefa
的字符串,並希望將所有字母替換為其索引號。 那么,怎么做呢? 請舉一個簡單的例子詳細解釋。
您可以將塊傳遞給gsub
然后在發生匹配時做任何您想做的事情。
為此,您可以使用gsub!
方法。
name = "Amanda"
new_name = name.gsub("a") do |letter|
puts "I've met letter: " + letter
"*"
end
# I've met letter: a
# I've met letter: a
# => "Am*nd*"
如果要使用索引,可以執行以下操作:
new_name = name.chars.map.with_index do |c, i|
if i.odd?
"*"
else
c
end
end.join
#=> => "A*a*d*"
在這里, c
和i
傳遞到塊。 c
是一個字符,而i
是一個索引。
如果name=huzefa
並且您要用其索引替換“ a”。
name.split(//).map.with_index{|x,y| (x=='a')? y : x}.join
導致#> "huzef5"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.