Ruby 4.0 リファレンスマニュアル

instance method String#next!

succ! -> String[permalink][rdoc][edit]
next! -> String

self を「次の」文字列に置き換えます。「次の」文字列は、アルファベットなら 16 進数、数字なら 10 進数とみなして計算されます。「次の」文字列の計算では "99" → "100" のように繰り上げも行われます。このとき負符号などは考慮されません。

self にアルファベットや数字とそれ以外の文字が混在している場合、アルファベットと数字だけが「次の」文字になり、残りは保存されます。逆に self がアルファベットや数字をまったく含まない場合は、単純に文字コードを 1 増やします。

さらに、self が空文字列の場合は "" を返します。

このメソッドはエンコーディングを考慮して動作するため、マルチバイト文字であってもアルファベットや数字と同様に「次の」文字が計算されます。

なお、succ! と逆の動作をするメソッドはありません。


s = "aa"
s.succ!
p s   # => "ab"

# 繰り上がり
s = "99"
s.succ!
p s   # => "100"

# マルチバイト文字にも対応
s = "99"
s.succ!
p s   # => "100"

s = ""
s.succ!
p s   # => "ゔ"

[SEE_ALSO] String#succ