我试图反转整数的数字:123456 => 654321
,我能想到的最佳解决方案是 123456.to_s.reverse.to_i
。我觉得这是太多的代码。有人有比这更好的方法吗?
最佳答案
这是一个非常“代码高尔夫”式的答案,而不是我建议用真实代码编写的东西...
但是您可以使用以下方法从答案中删除一个额外的字符:
123456.to_s.reverse.to_i
123456.digits.join.to_i
或者(同样,仅作为“代码高尔夫”答案!!)如果您很高兴以 String
而不是 Integer
结束,您可以使这个更均匀的分拣机:
123456.digits*'' #=> "654321"
事实上,转换为字符串可能实际上更可取,因为它可以防止丢失信息丢失零。抛开代码高尔夫答案,比较:
43210.to_s.reverse #=> "01234"
43210.to_s.reverse.to_i #=> 1234
关于ruby - 反转整数数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20489436/