Ruby-查找包含数组中字母的字符串
发布时间:2020-12-17 02:17:53 所属栏目:百科 来源:网络整理
导读:我到处搜索,似乎无法找到我正在寻找的例子.我正在尝试学习 ruby,我正在编写一个简单的脚本.提示用户输入加载到数组中的字母.然后,该脚本将浏览包含一堆单词的文件,并拉出包含数组中内容的单词.我的问题是,如果它们按照数组的顺序,它只会拉出单词.例如… char
我到处搜索,似乎无法找到我正在寻找的例子.我正在尝试学习
ruby,我正在编写一个简单的脚本.提示用户输入加载到数组中的字母.然后,该脚本将浏览包含一堆单词的文件,并拉出包含数组中内容的单词.我的问题是,如果它们按照数组的顺序,它只会拉出单词.例如…
characterArray = Array.new; puts "Enter characters that the password contains"; characters = gets.chomp; puts "Searching words containing #{characters}..."; characterArray = characters.scan(/./); searchCharacters=characterArray[0..characterArray.size].join; File.open("dictionary.txt").each { |line| if line.include?(searchCharacters) puts line; end } 如果我要使用此代码并输入“dog” 但我需要输出返回单词,即使它们不是相同的顺序.喜欢… 对不起草率的代码.就像我说的还在学习.谢谢你的帮助. PS.我也试过这个…… File.open("dictionary.txt").each { |line| if line =~ /[characterArray[0..characterArray.size]]/ puts line; end } 但这会返回包含用户输入的任何字母的所有单词 解决方法
首先,您不需要自己创建characterArray.当您将函数结果分配给新变量时,它将在没有它的情况下工作.
在您的代码中,字符将是,例如,“asd”.然后characterArray将是[“a”,“s”,“d”].而searchCharacters将再次“asd”.看来你不需要这种转换. characterArray [0..characterArray.size]等于characterArray. 您可以使用each_char迭代器来遍历字符串的字符.我建议这个: puts "Enter characters that the password contains"; characters = gets.chomp; File.open("dictionary.txt").each { |line| unless characters.each_char.map { |c| line.include?(c) }.include? false puts line; end } 我检查过它工作正常.在我的代码中我创建了一个数组: characters.each_char.map { |c| line.include?(c) } 此数组的值将指示:true – 在行中找到的字符,false – 未找到字符.此数组的长度等于字符数.如果没有错误值,我们会考虑线路良好. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |