2013-04-25 49 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+" " 
}