如果遇到撇号,则获取停止处理脚本

时间:2014-10-29 14:51:56

标签: ruby windows

我正在学习Codecademy课程,非常基础,但课程会提示用户输入一个字符串,然后提示他们输入要隐藏字符串的单词。我已经完成了课程,但我想尝试在课程之外搞乱它。

我发现以下脚本将在课程的脚本和解释器区域中运行完成但是如果我尝试在例如labs.codecademy.com或repl.it上运行相同的脚本 我会收到第一个问题的提示,如果我输入一个包含撇号的字符串,它将不会继续下一个提示。我没有收到错误,但最终我会得到一个“这个程序花了太长时间才能完成”弹出。

这是脚本:

puts "Tell me something."
    text = gets.chomp
puts "What would you like me to forget?"
    redact = gets.chomp

words = text.split(" ")  

words.each { |text|
     if redact.include? text
        print "REDACTED "
     else
        print text + " "
     end
}

所以例如,如果你要输入我真的很喜欢蓝莓派,但是如果你要输入他们告诉我应该尝试蓝莓馅饼程序挂断了。

对于Ruby来说,我是一个完全新手,但是有没有办法获得进程那种标点符号?或者这不是正确的方法吗?或者只是我正在尝试运行此程序的环境?

1 个答案:

答案 0 :(得分:0)

IO.gets是系统级调用:http://apidock.com/ruby/IO/gets

它很好地从STDIN(标准输入)读取,这是您在终端窗口中键入的文本:http://en.wikipedia.org/wiki/Standard_streams

浏览器本身没有这个,它可能取决于基于Web的控制台的实现,关于它们如何处理这样的调用。通常,存在已知的限制(如此)。

正如@BroiStatse指出的那样,它可能也是基于浏览器的实现中的一个错误。