在RUBY中从if循环打印编辑的单词

时间:2013-04-25 16:19:37

标签: ruby if-statement printing

我正在进行codecademy的练习,并且我被困在一个我的代码没有做我需要它做的事情的地方。我需要它做的就是打印单词但是如果单词被编辑,我需要它来打印“删除”。从我所看到的,这就是我的代码正在做的但我必须在错误的地方有一个符号或缺少某些东西。所以,如果有人能看到我出错的地方,我肯定会欣赏正确方向的推动!谢谢你!这是我的代码:

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+" "}

3 个答案:

答案 0 :(得分:1)

words是一个数组,redact是一个字符串。因此,您无法使用==对它们进行比较。您要做的是查看redact中是否存在words。您可以使用include?

执行此操作
if words.include?(redact) ...

更好的实现方法是在原始输入字符串上使用regex

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

答案 1 :(得分: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}

答案 2 :(得分:0)

使用$end代替end

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