Rubyリファレンス: Home

succ, succ! (String)

Edit   History

標準クラス・モジュール > String > succ, succ!

succ

str.succ

succメソッドは、「次の文字列」を返します。nextメソッドはsuccの別名です。

文字列の末尾がアルファベットか数字の場合は、A→B、1→2のように1つ進めたものになります。

s = "abc"
puts s.succ
s = "abc123"
puts s.succ
abd
abc124

末尾の文字が9やZ、zのときは、繰り上げを行います。

s = "29"
puts s.succ
s = "ZZ"
puts s.succ
s = "abc999"
puts s.succ
30
AAA
abd000

アルファベット・数字とそれ以外の文字が混在している場合は、アルファベット・数字だけを処理します。アルファベット・数字が含まれない文字列では、末尾のバイトの値を1つ進めます。

s = "<cook>"
puts s.succ
s = "*****"
puts s.succ
<cool>
****+

Ruby 1.9 Ruby 1.9では、文字列の文字コードがUTF-8などのユニコード系の場合は、末尾の文字のユニコード番号を1つ進めます。

# encoding: utf-8
s = "ABCあ"
puts s.succ
ABCぃ   (Ruby 1.8ではABDあ)

succ!

str.succ!

succ!メソッドは、レシーバ自身を「次の文字列」に変えます。戻り値はレシーバ自身です。next!メソッドはsucc!の別名です。

s = "boom"
s.succ!
puts s
boon

関連項目