如何从Integer获取最右边的数字 - Ruby

Zub*_*Man 4 ruby integer digit

我正在制作一个程序,要求我读入并验证一个数字,但这样做我需要取一个两位数的整数(例如我们会说18)并将它加1 + 8.现在我有它的工作在哪里我做一个条件检查,如果它大于10并减去,但在我看来这是一种丑陋的解决方案,并想知道是否有更清洁的方法吗?

San*_*osh 12

您可以使用模运算符 n % 10.例如:

18 % 10
# => 8 
9 % 10
# => 9 
0 % 10
# => 0
(-123).abs % 10
# => 3 
Run Code Online (Sandbox Code Playgroud)

编辑

Ruby 2.4有一个Integer#digits方法.所以你可以做到

123.digits
# =>[3, 2, 1]

123.digits.first
# => 3

123.digits.sum
# => 6 
Run Code Online (Sandbox Code Playgroud)

整数#digits方法将为您提供数字作为数组,从单位的位置开始.如果你想处理负数,请使用整数#abs

18 % 10
# => 8 
9 % 10
# => 9 
0 % 10
# => 0
(-123).abs % 10
# => 3 
Run Code Online (Sandbox Code Playgroud)