@OrdeO
just......newbie

Как заменить слово на другое в переменной Ruby?

У меня приходит некоторая переменная = race.
В которой могу быть ряд значений, пример("Black", "AI/AN**", "NH/PI**", White, Asians)

Как мне сделать так, что б моя переменная автоматически меняло значение по такому алгоритму, если в ней пришло
Black должно стать African American,
White - white,
AI/AN** - American Indian or Alaskan Native
NH/PI - Native Hawaiian or Other Pacific Islander
Я пробовал через gsub - но он не меняет саму переменную
Как это можно реализовать силами руби или регулярных выражений?
  • Вопрос задан
  • 81 просмотр
Решения вопроса 2
TAbrahamyan
@TAbrahamyan
words = ["Black", "AI/AN**", "NH/PI**", "White", "Asians"]

words.each do |word|
  case word
  when "Black"
    word.gsub!("Black", "African American")
  when "AI/AN**"
    word.gsub!("AI/AN**", "American Indian or Alaskan Native")
  when "NH/PI**"
    word.gsub!("NH/P**", "ative Hawaiian or Other Pacific Islander")
  end
end
Ответ написан
0xD34F
@0xD34F
replacements = {
  'Black' => 'African American',
  'AI/AN**' => 'American Indian or Alaskan Native',
  'NH/PI**' => 'Native Hawaiian or Other Pacific Islander'
}

replaced = arr.map{|n| replacements[n] or n}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы