【问题标题】:Generate array of all letters and digits生成所有字母和数字的数组
【发布时间】:2011-06-18 07:49:18
【问题描述】:

使用ruby,是否可以轻松地将字母表中的每个字母和0-9组成一个数组?

【问题讨论】:

    标签: ruby


    【解决方案1】:

    对于字母或数字,您可以形成范围并对其进行迭代。试试这个以获得一个大致的想法:

    ("a".."z").each { |letter| p letter }
    

    要从中获取一个数组,只需尝试以下操作:

    ("a".."z").to_a
    

    【讨论】:

      【解决方案2】:
      [*('a'..'z'), *('0'..'9')] # doesn't work in Ruby 1.8
      

      ('a'..'z').to_a + ('0'..'9').to_a
      

      (0...36).map{ |i| i.to_s 36 }
      

      Integer#to_s 方法将一个数字转换为一个字符串,以所需的numeral system 表示它)

      【讨论】:

      • 在此上下文中使用的* 运算符是否有特定名称?这对我来说是新的。
      • @Michael Burr,splat 操作员。见herehere
      • 请在回答中指出 * 代码示例将在 Ruby 1.9 中有效,但在 Ruby 1.8 中无效
      • @Zabba,你刚刚在评论中指出了它..)
      • Ruby 2.1 下的基准测试 [*('a'..'z'),*('0'..'9')] 比 (0.. .36).map{|i|i.to_s 36}(1.450000 秒对比 2.26000 秒,其中 n = 100,000)。如果需要包含大写,请使用以下命令:[*('a'..'z'),*('A'..'Z'),*('0'..'9')]跨度>
      【解决方案3】:

      你也可以这样做:

      'a'.upto('z').to_a + 0.upto(9).to_a
      

      【讨论】:

        【解决方案4】:
        myarr = [*?a..?z]       #generates an array of strings for each letter a to z
        myarr = [*?a..?z] + [*?0..?9] # array of strings a-z and 0-9
        

        【讨论】:

          【解决方案5】:

          你可以这样做:

          ("0".."Z").map { |i| i }
          

          【讨论】:

            【解决方案6】:

            试试这个:

            alphabet_array = [*'a'..'z', *'A'..'Z', *'0'..'9']
            

            或者作为字符串:

            alphabet_string = alphabet_array.join
            

            【讨论】:

              【解决方案7】:
              letters = *('a'..'z')
              

              => ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]

              【讨论】:

              • 尽管这可以回答问题,但没有对您的代码的解释。请更新您的答案以解释您在做什么。谢谢!
              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2012-04-26
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多