【发布时间】:2016-06-06 02:23:54
【问题描述】:
我需要用用户输入替换文件solution09.txt 中的占位符NOUN、VERB、ADJ 和ADV。
Madlib 解决方案09.txt:
有一天我在看我儿子 [ADV] 和他的 [NOUN] 玩耍。他假装[名词]是[ADJ]。几分钟后,他在假装 [VERB],因为其中一个 [NOUN] 开走了。当我问他这件事时,他 [ADV] 说,嗯,当 [NOUN] [VERB] 时很有趣,因为 [NOUN] 不能真正 [VERB]。
我想我成功地将文件放入一个字符串,但我必须读取字符串,并用用户输入替换占位符。替换后,我需要输出新的 madlib。我正在将用户输入转换为变量,但我不确定如何用用户输入正确替换占位符。
当前代码:
file = File.open("solution09.txt", "r")
contents = file.read
puts "Enter a noun: "
noun = gets.chomp
puts "Enter a verb: "
verb = gets.chomp
puts "Enter an adjective: "
adj = gets.chomp
puts "Enter an adverb: "
adv = gets.chomp
if file.include?('NOUN')
file1= file.gsub("[NOUN]", noun, "[VERB]", verb, "ADJ", adj, "ADV", adv)
end
【问题讨论】:
-
我看到的第一个问题是 gsub 不太像那样工作。如果要进行多次替换,则需要多次调用 gsub,例如
new_string = old_string.gsub('[NOUN]', noun).gsub('[VERB]', verb)您可以像这样对任意数量的 gsub 进行字符串化。第二个问题是您与围绕词性的 [] 不一致。 NOUN 和 VERB 有,ADJ 和 ADV 没有。第三个问题是您在file上调用 gsub,它是文件对象,而不是contents,它是代表您的数据的字符串。这应该足够开始了。 -
这正是我需要让它正确输出。谢谢!