groovy - Groovy 中按自然顺序对列表进行排序

标签 groovy natural-sort

尝试以自然/人类可读的顺序对字符串列表进行排序(升序)。如下所示。

def list = ['f3', 'f10', 'f1', 'f12', 'f2', 'f34', 'f22','f20','f50', 'f5']
list.sort()

我可以在 GitHub 中找到示例 Java 代码。但寻找常规的方式。如有任何帮助,我们将不胜感激。

所需输出:

f1, f2, f3, f5, f10, f12, f20, f22, f34, f50

最佳答案

def list = ['f3', 'f10', 'f1', 'f12', 'f2', 'f34', 'f22','f20','f50', 'f5', 'f9']
list.sort { it[1..-1] as int }​

结果:

[f1, f2, f3, f5, f9, f10, f12, f20, f22, f34, f50]

关于groovy - Groovy 中按自然顺序对列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46094055/

相关文章:

json - 清除内存中格式错误的 json 的最佳方法

gradle - 从 gradle/groovy 中的路径创建目录结构

mysql - 如何对 “X-Y” 字符串数据进行自然排序,先按 X,然后按 Y?

python - 使用 Enum 的定义顺序作为自然顺序

JavaScript - 对 FileList 对象进行自然排序

javascript - 巧妙排序(对可能包含或不包含数字的字符串进行排序)

maven - gmaven-plugin 适用于 groovy 1.7.5 但不适用于 2.1.0

unit-testing - 在Grails中使用ControllerUnitTestCase进行单元测试

methods - 在 Groovy 中设置 MethodClosure 的委托(delegate)

java - 什么是 "natural ordering"?