簡體   English   中英

Ruby:將字符串中的字符替換為其索引號

[英]Ruby : Replace a character in a String with its index number

我想在滿足特定條件時替換字符串中的字符。 因此,我瀏覽了Ruby的API文檔,找到了gsubgsub! 等用於類似目的。 當我在程序中實現該功能時,我沒有出現任何錯誤,但也沒有得到所需的輸出。

我正在嘗試的代碼是這樣的:

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*"

在這里, ci傳遞到塊。 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM