Ruby 使用gsub或sub替换字符串

Ruby 使用gsub或sub替换字符串,ruby,string,gsub,Ruby,String,Gsub,我在为明天的考试而学习。前面的问题之一是定义一种方法,如果元素以a结尾,则将e添加到数组元素(符号数组),或者如果元素以i结尾,则添加s 不使用gsub或sub,我可以做到这一点: arbitrary = [:alpha, :beta, :kappa, :phi] p arbitrary def pluralise (array) manipulate = [] array.each {|member| string = member.to_s last_char =

我在为明天的考试而学习。前面的问题之一是定义一种方法,如果元素以
a
结尾,则将
e
添加到数组元素(符号数组),或者如果元素以
i
结尾,则添加
s

不使用gsub或sub,我可以做到这一点:

arbitrary = [:alpha, :beta, :kappa, :phi]
p arbitrary

def pluralise (array)
  manipulate = []
  array.each {|member|
    string = member.to_s
    last_char = string[-1,1]
    if last_char == "a" then
      string = string + "e"
      manipulate << string.to_sym
    end
    if last_char == "i" then
      string = string + "s"
      manipulate << string.to_sym
    end

  }
  manipulate

end

new_arbitrary = pluralise(arbitrary)

p new_arbitrary
有人知道这里出了什么问题吗


谢谢

将行
string.gsub(string,string+“s”)
修改为
string.gsub!(字符串,字符串+“s”)
。它会起作用的


作用于接收器的副本,其中as作用于接收器本身。

将行
string.gsub(string,string+“s”)
修改为
string.gsub!(字符串,字符串+“s”)
。它会起作用的


作用于接收器的副本,其中as作用于接收器本身。

将行
string.gsub(string,string+“s”)
修改为
string.gsub!(字符串,字符串+“s”)
。它会起作用的


作用于接收器的副本,其中as作用于接收器本身。

将行
string.gsub(string,string+“s”)
修改为
string.gsub!(字符串,字符串+“s”)
。它会起作用的


作用于接收器的副本,而as作用于接收器本身。

您可以在map和case语句中对in数组执行整个查找和替换

[:alpha, :beta, :kappa, :phi].map do |v|
  v = v.to_s
  case v[-1]
  when 'a' then v + 'e'
  when 'i' then v + 's'
  else v
  end
end

您可以在map和case语句中对in数组执行整个find和replace操作

[:alpha, :beta, :kappa, :phi].map do |v|
  v = v.to_s
  case v[-1]
  when 'a' then v + 'e'
  when 'i' then v + 's'
  else v
  end
end

您可以在map和case语句中对in数组执行整个find和replace操作

[:alpha, :beta, :kappa, :phi].map do |v|
  v = v.to_s
  case v[-1]
  when 'a' then v + 'e'
  when 'i' then v + 's'
  else v
  end
end

您可以在map和case语句中对in数组执行整个find和replace操作

[:alpha, :beta, :kappa, :phi].map do |v|
  v = v.to_s
  case v[-1]
  when 'a' then v + 'e'
  when 'i' then v + 's'
  else v
  end
end

太好了-这很有效!将接受(必须等待12分钟根据堆栈溢出)伟大-这是工程!将接受(必须等待12分钟根据堆栈溢出)伟大-这是工程!将接受(必须等待12分钟根据堆栈溢出)伟大-这是工程!将接受(必须根据堆栈溢出等待12分钟)谢谢,我曾考虑过使用
map
。然而,考题很具体,我们必须使用
每一个
收集
选择
:)这太愚蠢了。您还应该使用
do
/
end
而不是大括号。
map
collect
的别名。谢谢,我曾经考虑过使用
map
。然而,考题很具体,我们必须使用
每一个
收集
选择
:)这太愚蠢了。您还应该使用
do
/
end
而不是大括号。
map
collect
的别名。谢谢,我曾经考虑过使用
map
。然而,考题很具体,我们必须使用
每一个
收集
选择
:)这太愚蠢了。您还应该使用
do
/
end
而不是大括号。
map
collect
的别名。谢谢,我曾经考虑过使用
map
。然而,考题很具体,我们必须使用
每一个
收集
选择
:)这太愚蠢了。您还应该使用
do
/
end
而不是大括号。
map
collect
的别名。