相关疑难解决方法(0)

Windows资源管理器使用的排序顺序中的第一个字符是什么?

例如,在Windows文件夹中,如果我们创建一些文件并将其命名为1.html,2.txt,3.txt,photo.jpg,zen.png,则顺序将保持不变.但是如果我们创建另一个名为_file.doc的文件,它将被放在顶部.(考虑到我们按名称降序排序)

同样,将被视为第一个的角色是什么,这样如果我使用该角色,它会将文件放在层次结构的顶部?

windows algorithm programming-languages char special-characters

49
推荐指数
6
解决办法
9万
查看次数

Windows资源管理器排序方法

我正在寻找一种算法来排序字符串,类似于在Windows资源管理器中排序文件(和文件夹)的方式.似乎在排序时会考虑字符串中的数值,这会产生类似的结果

name 1, name 2, name 10
Run Code Online (Sandbox Code Playgroud)

代替

name 1, name 10, name 2
Run Code Online (Sandbox Code Playgroud)

通过常规字符串比较得到的.

我本人即将开始写这篇文章,但是想要检查一下是否有人这样做过,并愿意分享一些代码或见解.我接近这个的方法是在比较之前将前导零添加到名称中的数值.这会产生类似的结果

name 00001, name 00010, name 00002
Run Code Online (Sandbox Code Playgroud)

当使用常规字符串排序进行排序时,会给出正确的结果.

有任何想法吗?

sorting algorithm

19
推荐指数
2
解决办法
7353
查看次数

在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
查看次数

.NET中从1,10和2开始排序字符串并遵守数字排序的最短路径是什么?

我需要按如下方式对文件名进行排序:1.log,2.log,10.log

但是当我使用OrderBy(fn => fn)时,它会将它们排序为:1.log,10.log,2.log

我显然知道这可以通过编写另一个比较器来完成,但有没有更简单的方法从词典顺序转换为自然排序顺序?

编辑:目标是获得与在Windows资源管理器中选择"按名称排序"时相同的顺序.

.net c# sorting string lexicographic

10
推荐指数
1
解决办法
1427
查看次数

H2数据库排序规则:选择什么?

经过大量阅读和实验后,似乎我想要主要的搜索强度,但第三或相同的排序强度。主要问题:用 H2(或任何其他数据库)可以实现吗?

\n\n

第二个问题:我是这里唯一的人吗?或者你们中有人也喜欢上述组合吗?一些确认会对我的理智有所帮助。

\n\n

背景:\n似乎只能在创建数据库的一开始就设置排序规则。所以我想确保选择正确的一个。我主要考虑这些用例(目前):

\n\n
    \n
  1. 用户可以开始输入内容来过滤表格的搜索字段:这里 PRIMARY 似乎是最合适的,以避免丢失任何结果(用户习惯于 Google...)。尽管如此,如果能够为用户提供启用二级或三级排序规则以进行更精确搜索的选项,那就太好了。

  2. \n
  3. 排序:当用户单击表列来对内容进行排序时,TERTIARY/IDENTICAL 排序似乎比较合适。这就是我从日常经验中习惯的。

  4. \n
\n\n

我在这里阅读了官方 H2 文档: http: //www.h2database.com/html/commands.html#set_collat ​​ion 。 \n在这里:http://www.h2database.com/html/datatypes.html#varchar_ignorecase_type \n更多相关信息:\n排序规则强度和本地语言关系

\n\n

测试sql(来自https://groups.google.com/forum/?fromgroups=#!topic/h2-database/lBksrrcuGdY):

\n\n
drop all objects;\nset collation english STRENGTH PRIMARY;\ncreate table test(name varchar);\ninsert into test values (\'\xc3\x80\'), (\'\xc3\x84\'), (\'\xc3\x82\'), (\'A\'), (\'\xc3\xa0\'), (\'\xc3\xa4\'), (\'\xc3\xa2\'), (\'a\'), (\'\xc3\xa0a\'), (\'\xc3\xa4a\'), (\'\xc3\xa2a\'), (\'aa\'), (\'B\'), (\'b\');\nselect * from test where name like \'a\' order by name;\nselect * from test order by name;\n
Run Code Online (Sandbox Code Playgroud)\n\n

在此输入图像描述

\n

search collation h2 sql-order-by

5
推荐指数
1
解决办法
2457
查看次数

Java文件列表与Window资源管理器相同的顺序

我正在使用下面的代码来获取文件列表排序:(如窗口资源管理器)

    package com.codnix.quickpdfgenerator.testing;
    import java.io.File;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Collections;
    import java.util.Comparator;
    import java.util.Iterator;
    import java.util.List;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;

    public class FileListOrder {
        public static void main(String args[]) {
            //huge test data set ;)

            File folder = new File("C:\\Users\\Codnix\\Desktop\\Test Sequence");
            File[] listOfFiles = folder.listFiles();
            List<File> filenames = Arrays.asList(listOfFiles); 

            //adaptor for comparing files
            Collections.sort(filenames, new Comparator<File>() {
                private final Comparator<String> NATURAL_SORT = new WindowsExplorerComparator();

                @Override
                public int compare(File o1, File o2) {;
                    return NATURAL_SORT.compare(o1.getName(), o2.getName());
                }
            });

            for (File …
Run Code Online (Sandbox Code Playgroud)

java explorer natural-sort

2
推荐指数
1
解决办法
317
查看次数

如何使java.io.File.list()与Windows资源管理器中的顺序相同

如何获得java.io.File.list()与Windows资源管理器中相同的顺序?

在程序中,我正在创建Temp文件夹,例如Temp1,Temp2依此类推.但是当我使用java.io.File.list()检索文件夹列表,它给人的Temp1,Temp10等等.

请告诉我们如何获得与Windows资源管理器中显示的相同的订单列表?

谢谢

java windows

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