配列の場合、要素のシーケンスを再配置するかなりのsort
メソッドがあります。文字列でも同じ結果を達成したい。
たとえば、文字列str = "String"
がある場合、"ginrSt"
への1つの簡単な方法でアルファベット順に並べ替えます。
これを有効にするネイティブな方法はありますか、Enumerable
からのミックスインを含める必要がありますか?
chars
method は、文字列の文字の列挙を返します。
str.chars.sort.join
#=> "Sginrt"
大文字と小文字を区別せずに並べ替えるには:
str.chars.sort(&:casecmp).join
#=> "ginrSt"
また(楽しみのためだけに)
str = "String"
str.chars.sort_by(&:downcase).join
#=> "ginrSt"
str.unpack("c*").sort.pack("c*")
文字列を配列に変換して並べ替えることができます。
'string'.split('').sort.join