如何按字母顺序对字符串字符进行排序?
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 字符串进行排序?
当字符串为数字时,如何在考虑值的同时按字母顺序对字符串进行排序?
当字符串是数字时,如何在考虑值的同时按字母顺序对字符串进行排序?