相关疑难解决方法(0)

C#中的自然排序顺序

任何人都拥有良好的资源或在C#中为FileInfo数组提供自然顺序排序的样本?我正在实现IComparer我的各种界面.

c# sorting file natural-sort

124
推荐指数
11
解决办法
5万
查看次数

在Java中按名称排序文件与Windows资源管理器不同

我有一个简单的Java程序,它读取文件目录并输出文件列表.我按名称对文件进行排序:

String [] files = dirlist.list();
files = sort(files);
Run Code Online (Sandbox Code Playgroud)

我的问题是它以不同于Windows资源管理器的方式按名称排序.

例如,如果我有这些文件:abc1.doc,abc12.doc,abc2.doc.

Java会像这样排序:

abc1.doc
abc12.doc
abc2.doc
Run Code Online (Sandbox Code Playgroud)

当我在Windows资源管理器中打开文件夹时,我的文件排序如下:

abc1.doc
abc2.doc
abc12.doc
Run Code Online (Sandbox Code Playgroud)

如何让Java在Windows资源管理器中对文件进行排序?这是Windows的伎俩吗?

java windows-explorer

11
推荐指数
1
解决办法
5053
查看次数

Java - 像Windows资源管理器一样排序字符串

我想在另一个问题上使用Sander Pham建议的代码.我需要像Windows资源管理器那样对字符串名称的java ArrayList进行排序.他的代码适用于一切,但只针对一个问题.我本来希望对这个问题发表评论,但我需要更多的声誉点来评论.无论如何......他建议使用自定义比较器实现的类并使用它来比较字符串名称.这是该类的代码:

class IntuitiveStringComparator implements Comparator<String>
{
    private String str1, str2;
    private int pos1, pos2, len1, len2;

    public int compare(String s1, String s2)
    {
        str1 = s1;
        str2 = s2;
        len1 = str1.length();
        len2 = str2.length();
        pos1 = pos2 = 0;

        int result = 0;
        while (result == 0 && pos1 < len1 && pos2 < len2)
        {
            char ch1 = str1.charAt(pos1);
            char ch2 = str2.charAt(pos2);

            if (Character.isDigit(ch1))
            {
                result = Character.isDigit(ch2) ? compareNumbers() : -1;
            }
            else if …
Run Code Online (Sandbox Code Playgroud)

java windows sorting explorer comparator

3
推荐指数
1
解决办法
2513
查看次数