我正在寻找一种对字符串进行排序的算法,类似于在Windows资源管理器中对文件(和文件夹)进行排序的方式。似乎在排序时会考虑字符串中的数值,这会导致类似
name 1, name 2, name 10
代替
name 1, name 10, name 2
您可以通过常规字符串比较来获得。
我本人将要开始编写此文件,但想检查是否有人以前做过此事,并愿意分享一些代码或见解。我将采用的方式是在比较它们之前将前导零添加到名称中的数字值。这将导致类似
name 00001, name 00010, name 00002
当使用常规字符串排序进行排序时,它将为我提供正确的结果。
有任何想法吗?
这称为“自然排序顺序”。Jeff 不久前在其博客上发表了一篇相当广泛的文章,其中描述了您可能会忽略的困难,并提供了一些实现的链接。