【问题标题】:How to sort a string's characters alphabetically?如何按字母顺序对字符串字符进行排序?
【发布时间】:2012-03-16 20:52:19
【问题描述】:

对于数组,有一个漂亮的sort 方法来重新排列元素的序列。我想为 String 实现相同的结果。

例如,我有一个字符串str = "String",我想用一种简单的方法将其按字母顺序排序为"ginrSt"

是否有本地方法可以启用此功能,或者我是否应该包含来自 Enumerable 的 mixin?

【问题讨论】:

    标签: ruby string sorting


    【解决方案1】:

    chars method 返回字符串字符的枚举。

    str.chars.sort.join
    #=> "Sginrt"
    

    不区分大小写排序:

    str.chars.sort(&:casecmp).join
    #=> "ginrSt"
    

    【讨论】:

    • str.chars.sort(&:casecmp).join
    【解决方案2】:

    还有(只是为了好玩)

    str = "String"
    str.chars.sort_by(&:downcase).join
    #=> "ginrSt"
    

    【讨论】:

    • 我更喜欢 sort_by 方法,因为它更清晰简单
    【解决方案3】:
    str.unpack("c*").sort.pack("c*")
    

    【讨论】:

    • 添加一些解释。你到底想说什么?
    【解决方案4】:

    可以将字符串转为数组进行排序:

    'string'.split('').sort.join
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-04
      • 1970-01-01
      • 2015-07-23
      • 1970-01-01
      • 1970-01-01
      • 2017-10-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多