排列宝石

| 我正在尝试获取一个字符串列表,这些字符串是字母,数字和破折号的组合,长度从1到63不等。 我正在使用置换宝石,并尝试使用
join(\'\')
获取字符串。
length = 1
alphabet = [(\'a\'..\'z\').to_a, (\'0\'..\'9\').to_a, (\'-\').to_a].flatten
while length < 64
  puts (alphabet.permutation(length){|x| p x}).join(\'\')
  length += 1
end
我得到的输出如下:
[\"r\", \"q\", \"l\"]
[\"r\", \"q\", \"m\"]
我确定我在这里缺少一些基本的东西。 任何帮助,不胜感激。     
已邀请:
        不知道您要完成什么。下面的代码(一个简化的示例)呢?
[\'a\',\'b\',\'c\'].permutation(3).collect { |x| x.join(\'\')}
回来了
=> [\"abc\", \"acb\", \"bac\", \"bca\", \"cab\", \"cba\"] 
    
        因此,让我们使用这种机制进行SQL查询: 假设我想在数据库中找到一个人。人有名字和姓氏,而不只是\'Name \'。更复杂的是,名字和姓氏可能包含许多单词。 ...因此我们有来自搜索引擎的查询字符串,其中包含\“ Jo Svenda Schmidt \”,其中\“ Jo Svenda \”是名字。
query = \"Jo Svenda Schmidt\".split
=> [\"Jo\", \"Svenda\", \"Schmidt\"]
query.permutation(query.length).collect { |x| x.join(\" AND \") }.join(\" OR \")

=> \"Jo AND Svenda AND Schmidt OR Jo AND Schmidt AND Svenda OR Svenda AND Jo AND Schmidt OR Svenda AND Schmidt AND Jo OR Schmidt AND Jo AND Svenda OR Schmidt AND Svenda AND Jo\"
这几乎是我们想要的,但不是全部。我们需要添加列名称并将其分组。 分组可能很简单     ... join(\“)或(\”) 在和,然后在结果查询的开头添加\“(\”,在结尾添加\“)\”。 但是如何在此查询中很好地添加\'Firstname = \'和\'Lastname = \'或\'LIKE \'?     

要回复问题请先登录注册