小编dgs*_*san的帖子

什么是在ruby中对字符串进行排序以便空字符串结束的好方法?

在Ruby中,默认排序首先放置空字符串.

['', 'g', 'z', 'a', 'r', 'u', '', 'n'].sort
Run Code Online (Sandbox Code Playgroud)

得到:

["", "", "a", "g", "n", "r", "u", "z"]
Run Code Online (Sandbox Code Playgroud)

但是,在最后想要空字符串是很常见的.

做类似的事情:

['', 'g', 'z', 'a', 'r', 'u', '', 'n'].sort { |a, b| a[0] && b[0] ?  a <=> b : a[0] ? -1 : b[0] ? 1 : 0 }
Run Code Online (Sandbox Code Playgroud)

工作并给出:

["a", "g", "n", "r", "u", "z", "", ""]
Run Code Online (Sandbox Code Playgroud)

但是,这不是很易读,也不是很灵活.

是否有一种合理而干净的方法可以让sortRuby将空字符串放在最后?仅映射到没有空字符串的数组,排序,然后在末尾填充空字符串会更好吗?还有其他方法吗?

ruby

5
推荐指数
2
解决办法
240
查看次数

标签 统计

ruby ×1