我正在尝试找出如何用用户字符串替换字符串中的单词。
系统将提示用户输入要替换的单词,然后再次提示他们输入新单词。
例如,起始字符串为“ Hello,World”。 用户输入“世界” 然后他们将输入“ Ruby” 最后,“你好,露比。”会打印出来。
到目前为止,我已经尝试过使用gsub和[]方法都行不通。有什么想法吗?
到目前为止,这是我的职能:
store
答案 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.