вставка символов в выделенную область строки

#ruby #string #include

#ruby #строка #включить

Вопрос:

Как бы я напечатал желаемый результат, который я разместил в комментарии в конце моего кода?

 string = "matthews"

    # letters = string.split(//)  NOT USING

letter_guess = "t"

if string.include? letter_guess
  print "its there"
else
  print "its not"
end


    # I would then like to ouput this!! --tt---- 
  

Ответ №1:

На самом деле это довольно просто, если вы просто замените все отсутствующие буквы:

 if (string.include?(letter_guess))
  puts "It's there: %s" % string.tr('^'   letter_guess', '-')
else
  puts "It's not there."
end
  

tr Метод очень хорош при удалении или изменении элементов для каждого символа. В этом случае он заменяет все буквы, которые не ( ^ ) совпадают с - .

Комментарии:

1. потрясающе. Спасибо! Что, если мне нужно передать это значение обратно в массив букв внутри строки… Например, если бы у меня был

2. потрясающе. Спасибо. Что, если мне нужно, чтобы это значение было передано обратно в массив той же длины, что и строка, состоящая из символов «-«? Вместо того, чтобы передавать их непосредственно в строку… итак, если бы это была строка = «great» и буква была r, она бы напечатала [«-«, «r», «-«, «-«, «-«]

3. @RobMatthews Учитывая любую строку, вы можете легко извлечь из нее символы: s.chars