Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使拼写在Ruby中不起作用?_Ruby - Fatal编程技术网

如何使拼写在Ruby中不起作用?

如何使拼写在Ruby中不起作用?,ruby,Ruby,我想做一个琐碎的游戏,如果有人在facebook上输入游戏的答案,不知何故,它不关心拼写计数 如果有人不小心输入了faceboko、fecabook或ftckbook,它会工作,并给出一个好工作的输出,你得到了 我不知道该怎么开始。一般来说,距离是用来处理这些问题的 您可以实现自己的解决方案,但是有一个很好的方法可以使用 定义错误率,例如4,并检查用户输入和原始字符串之间的距离 if @msg =~ /facebook/i puts "Nice job, you got

我想做一个琐碎的游戏,如果有人在facebook上输入游戏的答案,不知何故,它不关心拼写计数

如果有人不小心输入了faceboko、fecabook或ftckbook,它会工作,并给出一个好工作的输出,你得到了

我不知道该怎么开始。一般来说,距离是用来处理这些问题的

您可以实现自己的解决方案,但是有一个很好的方法可以使用

定义错误率,例如4,并检查用户输入和原始字符串之间的距离

    if @msg =~ /facebook/i
        puts "Nice job, you got it!"
    end
如果你用这个,你的代码会变成

2.2.2 :001 > require "levenshtein"
 => true 
2.2.2 :002 > Levenshtein.distance("facebook", "ftcebook")
 => 1 
这也可能有用-

它是/facebook/i,而不是\facebook\i。您可以使用编辑距离:
err = 4
if Levenshtein.distance("original", @msg)>err
  "Nice job"
end