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

Posted

技术标签:

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

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

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

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

【问题讨论】:

【参考方案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

【讨论】:

以上是关于如何按字母顺序对字符串字符进行排序?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 swift 中按字母顺序对 JSON 字符串进行排序?

当字符串为数字时,如何在考虑值的同时按字母顺序对字符串进行排序?

当字符串是数字时,如何在考虑值的同时按字母顺序对字符串进行排序?

java - 如何仅使用Java中的util.Scanner包按字母顺序对单个字符串进行排序?

如何按字典顺序对 ArrayList 进行排序?

首先按频率对字符串中的字符进行排序,然后按字母顺序排序