如何按字母顺序对字符串字符进行排序?

时间:2012-02-27 11:16:14

标签: ruby string sorting

对于Array,有一个非常sort方法来重新排列元素序列。我想为String获得相同的结果。

例如,我有一个字符串str = "String",我想用一个简单的方法按字母顺序对它"ginrSt"进行排序。

是否有以原生方式启用此功能,还是应包含Enumerable中的mixins?

4 个答案:

答案 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