对于Array,有一个非常sort
方法来重新排列元素序列。我想为String获得相同的结果。
例如,我有一个字符串str = "String"
,我想用一个简单的方法按字母顺序对它"ginrSt"
进行排序。
是否有以原生方式启用此功能,还是应包含Enumerable
中的mixins?
答案 0 :(得分:120)
chars
method返回字符串字符的枚举。
str.chars.sort.join
#=> "Sginrt"
对案例不敏感地排序:
str.chars.sort(&:casecmp).join
#=> "ginrSt"
答案 1 :(得分:13)
另外(只是为了好玩)
str = "String"
str.chars.sort_by(&:downcase).join
#=> "ginrSt"
答案 2 :(得分:2)
str.unpack("c*").sort.pack("c*")
答案 3 :(得分:1)
您可以将字符串转换为数组以进行排序:
'string'.split('').sort.join