用用户输入[RUBY]替换字符串中的单词

时间:2018-11-19 21:54:02

标签: arrays ruby string replace user-input

我正在尝试找出如何用用户字符串替换字符串中的单词。

系统将提示用户输入要替换的单词,然后再次提示他们输入新单词。

例如,起始字符串为“ Hello,World”。 用户输入“世界” 然后他们将输入“ Ruby” 最后,“你好,露比。”会打印出来。

到目前为止,我已经尝试过使用gsub和[]方法都行不通。有什么想法吗?

到目前为止,这是我的职能:

store

2 个答案:

答案 0 :(得分:0)

问题在于,当用户输入内容时,它还会获取新行,因此您希望将其删除。我在控制台中做了这个愚蠢的测试用例

sentence = "hello world"
replace_with = gets  # put in hello
replace_with.strip!
sentence.gsub!(replace_with, 'butt')
puts sentence  # prints 'butt world'

答案 1 :(得分:0)

输入“世界”时,实际上是按6个键: W o r l < kbd> d 和 enter (不会将诸如 shift 之类的修饰键识别为单独的字符)。因此,gets方法以"World\n"开始newline返回\n

要删除此类换行符,请使用chomp

"World\n".chomp
#=> "World"

应用于您的代码:(以及一些小的修复)

sentence = "Hello, World."

puts "========================="
puts sentence

print "Enter the word you want to replace: "
replace_word = gets.chomp

print "Enter what you want the new word to be: "
new_word = gets.chomp

sentence[replace_word] = new_word

puts sentence

运行代码会给出:

=========================
Hello, World.
Enter the word you want to replace: World
Enter what you want the new word to be: Ruby
Hello, Ruby.