Ruby 1.9.2 リファレンスマニュアル > ライブラリ一覧 > library _builtin > class String > next
succ -> String
next -> String
self の「次の」文字列を返します。
「次の」文字列は、対象の文字列の右端から アルファベットなら アルファベット順(aの次はb, zの次はa, 大文字も同様)に、 数字なら 10 進数(9 の次は 0)とみなして計算されます。
p "aa".succ # => "ab" p "88".succ.succ # => "90"
"99" → "100", "AZZ" → "BAA" のような繰り上げも行われます。 このとき負符号などは考慮されません。
p "99".succ # => "100" p "ZZ".succ # => "AAA" p "a9".succ # => "b0" p "-9".succ # => "-10"
self にアルファベットや数字とそれ以外の文字が混在している場合、 アルファベットと数字だけが「次の」文字になり、残りは保存されます。
p "1.9.9".succ # => # "2.0.0"
逆に self がアルファベットや数字をまったく含まない場合は、 単純に文字コードを 1 増やします。
p ".".succ # => "/"
さらに、self が空文字列の場合は "" を返します。 このメソッドはマルチバイト文字を意識せず、 単に文字列をバイト列として扱います。
なお、succ と逆の動作をするメソッドはありません。 また、succ という名前の由来は successor です。
例:
p "aa".succ # => "ab" # 繰り上がり p "99".succ # => "100" p "a9".succ # => "b0" p "Az".succ # => "Ba" p "zz".succ # => "aaa" p "-9".succ # => "-10" p "9".succ # => "10" p "09".succ # => "10" # アルファベット・数字とそれ以外の混在 p "1.9.9".succ # => # "2.0.0" # アルファベット・数字以外のみ p ".".succ # => "/" p "\0".succ # => "\001" p "\377".succ # => "\001\000"
このメソッドは文字列の Range の内部で使用されます。