ruby – 将整数转换为基数26,使用to z作为数字
发布时间:2020-12-17 01:47:21 所属栏目:百科 来源:网络整理
导读:我需要实现一个十进制到字符转换器.我有26个字符可用,所以它是关于将一??个整数转换为基数为26的系统,然后将每个数字改为它的字母表对应物.我不想在最终结果字符串中使用字符0-9.我可以使用to_s()方法,这是它的方式: 82.to_s(26) #= "34" / which gives me
我需要实现一个十进制到字符转换器.我有26个字符可用,所以它是关于将一??个整数转换为基数为26的系统,然后将每个数字改为它的字母表对应物.我不想在最终结果字符串中使用字符0-9.我可以使用to_s()方法,这是它的方式:
82.to_s(26) #=> "34" / which gives me "de" 120.to_s(26) #=> "4g" / which should give me "aep",but it's not Ruby to_s()方法以一种无用的格式返回一个值.数字82转换得很好,但120的转换返回一个我不知道如何处理的值. 任何人都可以解释我如何使120转换(作为一个例子)返回aep等价物?换句话说,如何从十进制基数转换为26但不使用输出中的数字? 解决方法
Ruby的Fixnum#to_s(base)和String#to_i(base)用于表示不同基数的数字.但是,您不能使用任意字符,它们的设计与hex和base64的约定兼容.
如果你没有转换到不同的基础,只是将十进制数字编码为字母和背面,那么只需要一个简单的替换: 46.to_s.tr( "0123456789","abcdefghijk" ) => "eg" "eg".tr( "abcdefghijk","0123456789" ).to_i => 46 因此,如果您想同时执行这两项操作,请使用a-z表示基数为26的数字: 46.to_s(26).tr( "0123456789abcdefghijklmnopq","abcdefghijklmnopqrstuvwxyz" ) => "bu" "bu".tr( "abcdefghijklmnopqrstuvwxyz","0123456789abcdefghijklmnopq" ).to_i(26) => 46 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 如何在Xcode中设置Irrlicht游戏引擎以进行ios部署
- ActionResult
- Sothink SWF Decompiler
- Oracle监听器起不来, TNS:could not resolve the connect
- c# – StackExchange Redis – StringSet vs SetAdd和expir
- c# – 如何使用动态LINQ进行求和
- 设计模式六大原则(2):里氏替换原则
- Flex之旅:第二部分:容器与布局(7)---使用IdeferredInstan
- c# – 如何通过引用以前的元素来停止.net JSON序列化?
- ruby-on-rails – 如何拯救异常中心和DRY?