2013-04-25 28 views
0

我正在通过codecademy中的练习,而且卡在一个地方,我的代码没有做我需要做的事情。我所需要做的只是打印单词,但如果单词被编辑,我需要它打印“编辑”。从我所看到的,这就是我的代码正在做的事情,但我必须在错误的地方或失踪的东西有一个符号。所以,如果任何人都可以看到我出错的地方,我肯定会赞赏在正确的方向推动!谢谢你,谢谢!这里是我的代码:从RUBY中的if循环打印编辑的字

puts "Whats your input brah?" 
text = gets.chomp 
puts "Whatchu are you hiding bro?" 
redact = gets.chomp 
words = text.split(" ") 
words.each {|x| if x == redact print "REDACTED"+" " else print x+" "} 
+0

嗯,好了,这绝对代码,如果我用“做”,而不是花括号工作。我测试了它。教程说,这两个是相同的东西,可以交互使用,但正如我发现的,当我使用大括号时它不起作用。除非我错过重要的东西。 – Jason 2013-04-25 18:12:26

回答

1

words是一个数组,并redact是一个字符串。所以你不能用==来比较它们。你要做的是看看redact是否出现在words的任何地方。您可以使用include?做到这一点:

if words.include?(redact) ... 

来实现,这将是对原始输入字符串使用regex一个更好的方法:

print text.gsub(/\b#{redact}\b/, 'REDACTED') 
1

我找到了答案。无论如何,谢谢你!

puts "Whats your input brah?" 
text = gets.chomp 
puts "Whatchu are you hiding bro?" 
redact = gets.chomp 
words = text.split(" ") 
words.each {|x| if x == redact then print "REDACTED"+" " else print "#{x}"+" " end} 
0

使用$end而不是end

words.each 
{ 
|x| 
if x == redact 
    print "REDACTED"+" " 
else 
    print x+" " 
}