一尘不染

Windows资源管理器排序方法

algorithm

我正在寻找一种对字符串进行排序的算法,类似于在Windows资源管理器中对文件(和文件夹)进行排序的方式。似乎在排序时会考虑字符串中的数值,这会导致类似

name 1, name 2, name 10

代替

name 1, name 10, name 2

您可以通过常规字符串比较来获得。

我本人将要开始编写此文件,但想检查是否有人以前做过此事,并愿意分享一些代码或见解。我将采用的方式是在比较它们之前将前导零添加到名称中的数字值。这将导致类似

name 00001, name 00010, name 00002

当使用常规字符串排序进行排序时,它将为我提供正确的结果。

有任何想法吗?


阅读 571

收藏
2020-07-28

共1个答案

一尘不染

这称为“自然排序顺序”。Jeff 不久前在其博客发表了一篇相当广泛的文章,其中描述了您可能会忽略的困难,并提供了一些实现的链接。

2020-07-28