整数から右端の数字を取得する方法 - Ruby

概要

私は数値を読み取って検証する必要があるプログラムに取り組んでいますが、その際には 2 桁の整数 (たとえば 18 とする) を取得し、それに 1 + 8 を加算する必要があります。これで動作するようになりました。ここで、10より大きいかどうかを条件チェックして減算しますが、それは私の意見では醜い解決策であり、もっときれいな方法があるかどうか疑問に思っていました。

解決策

モジュロ演算子 n % 10 を使用して、右端の桁を取得できます。例えば:

18 % 10
# => 8 
9 % 10
# => 9 
0 % 10
# => 0
(-123).abs % 10
# => 3 

負の数を処理するには、Integer#abs を使用します。

編集

Ruby 2.4 には Integer#digits メソッドがあります。単位の位置から始まる配列として数字が表示されます。数字を追加したい場合は、Enumerable#sum を使用できます。

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

123.digits.first
# => 3

123.digits.sum
# => 6