加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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”
该脚本将返回

但我需要输出返回单词,即使它们不是相同的顺序.喜欢…


rodge

对不起草率的代码.就像我说的还在学习.谢谢你的帮助.

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 – 未找到字符.此数组的长度等于字符数.如果没有错误值,我们会考虑线路良好.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读