ruby中是否有基数功能?

use*_*734 8 ruby

在阅读此处的另一个问题时,在创建URL缩短服务时,建议获取行的ID,然后将其转换为base 62(0到9,a到z和A到Z).在Ruby中是否有标准功能来实现这一目标?

编辑:不确定我是否足够清楚.

这样的:123456.radix(62)

应给出123456的基数62.

我想写一个,如果它还没有.

Fir*_*aad 9

Ruby整数类中的to_s方法有一个可选参数,用于指定基类,如:

123456.to_s(16)
Run Code Online (Sandbox Code Playgroud)

但是,它只接受2到36之间的值作为基数.

如果您想编写自己的编码器,此片段可能是一个很好的起点.还有一个base62 Ruby Gem,它在base62中添加了编码和解码方法.


Abe*_*ker 5

因为我最近需要在Ruby中使用基数,因为这是'Ruby radix'的第一个结果,我想我会指出现在有一个用于处理基数的宝石.以下是使用它编写OP示例的方法:1

require 'radix'
SIXTYTWO = ('0'..'9').to_a + ('a'..'z').to_a + ('A'..'Z').to_a
123456.b(62).to_s(SIXTYTWO)
Run Code Online (Sandbox Code Playgroud)

1SIXTYTWO,因为宝石不作任何假设关于哪些字符要使用到的结果进行编码,需要阵列.