如何按字母顺序排序字符串的字符?
问题描述:
对于数组,有一个漂亮的方法来重新排列元素的序列。我想为String实现相同的结果。如何按字母顺序排序字符串的字符?
例如,我有一个字符串str = "String"
,我想用一个简单的方法按字母顺序排列,以"ginrSt"
。
是否有一种本地方式来启用此功能,或者是否应该包含Enumerable
的mixins?
答
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*")
+3
向它添加一些解释。你究竟想说什么? – 2013-05-15 14:52:38
答
您可以将字符串到一个数组排序:
'string'.split('').sort.join
或'str.chars.sort(&:casecmp).join' – tokland 2012-03-07 12:05:10