相关疑难解决方法(0)

Java中的自然排序顺序字符串比较 - 是内置的吗?

我想要一些保留自然排序顺序1的字符串比较函数.Java中是否有这样的内容?我在String类中找不到任何内容,而Comparator类只知道两个实现.

我可以自己动手(这不是一个非常难的问题),但如果我不需要,我宁愿不重新发明轮子.

在我的具体情况下,我有我想要排序的软件版本字符串.所以我希望"1.2.10.5"被认为大于"1.2.9.1".


1通过"自然"排序顺序,我的意思是它将字符串与人类比较它们的方式进行比较,而不是"ascii-betical"排序顺序只对程序员有意义.换句话说,"image9.jpg"小于"image10.jpg","album1set2page9photo1.jpg"小于"album1set2page10photo5.jpg","1.2.9.1"小于"1.2.10.5"

java algorithm natural-sort comparator

69
推荐指数
4
解决办法
7万
查看次数

具有空值的比较器

我们有一些代码,它们根据坐标之间的距离对地址列表进行排序.这是通过collections.sort与自定义比较器完成的.

但是,有时会在列表中出现没有坐标的地址,从而导致出现NullPointerException.我最初的想法是让比较器返回0作为地址的距离,其中至少有一个坐标为空.我担心这可能会导致列表中"有效"元素的订单损坏.

所以在比较器ok中返回空数据的'0'值,或者有更清晰的方法来解决这个问题.

java comparator

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

对包含Java中的数字的字符串进行排序

我对字符串的默认比较器(在SortedSet中)有问题.问题是默认比较器没有排序包含数字的良好字符串,即:在集合中我有:

room1, room2, room100
Run Code Online (Sandbox Code Playgroud)

自然排序应该如上所述,但在集合中我有:

room1, room100, room2
Run Code Online (Sandbox Code Playgroud)

我知道它为什么但我不知道如何改变它.

java sorting

21
推荐指数
3
解决办法
4万
查看次数

如何在c ++中实现自然排序算法?

我正在排序由文本和数字组成的字符串.我希望排序将数字部分排序为数字,而不是字母数字.

例如,我想要:abc1def,...,abc9def,abc10def

而不是:abc10def,abc1def,...,abc9def

有谁知道这个算法(特别是在c ++中)

谢谢

c++ sorting natural-sort

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

如何在C中按顺序对数字和字母排序文件名?

我使用以下代码按字母顺序对文件进行排序,并对文件进行排序,如图所示:

for(int i = 0;i < maxcnt;i++) 
{
    for(int j = i+1;j < maxcnt;j++)
    {           
        if(strcmp(Array[i],Array[j]) > 0)
        {            
            strcpy(temp,Array[i]);      
            strcpy(Array[i],Array[j]);      
            strcpy(Array[j],temp);    
        }    
    } 
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

但我需要按照Windows资源管理器中的顺序对其进行排序

在此输入图像描述

怎么这样排序?请帮忙

c c++ sorting

12
推荐指数
4
解决办法
6980
查看次数

首先按长度排序数组,然后按字母顺序排序

如何按长度排序数组,然后按字母顺序排序?

我有一个带有数字的东西列表,我现在得到:

Something1 Something10 Something2 Something3

虽然我想得到:

Something1 Something2 Something3 Something10

java arrays sorting

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

使用数字值对字符串列表进行排序

我有一个字符串列表,这很可能,但不保证包含数字列表,即,

{"1", "6", "2", "21", "89"}
Run Code Online (Sandbox Code Playgroud)

排序字符串列表的方式是什么,以便始终按升序显示?

在进行排序之前,我无法先将字符串解析为数字,因为字符串可以包含非数字字符.而且我不想查看列表并将每个组件检查到数字并进行排序.为此目的,是否已经存在一个库?

在我们有混合数字和非数字字符串项的情况下,数字字符串总是优先于非数字字符串.

c# linq sorting

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

是否有比较器"自然地"排序可能包含数字的字符串,番石榴?

ComparatorGuava中是否有一个实现以"自然"方式对字符串进行排序,可能包含数字?
例如:
"a 8"
"a 9"
"a 10"

我找到了一些有趣的链接,但看起来guava中没有任何东西可以完成这项工作......

StackOverflow:"对可能包含数字的字符串进行排序"对Alphanum算法的
一个很好的解释

java sorting string guava

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

让 SortDescription 对字符串进行不同的排序

我有以下字符串:

“字符串 1”

“字符串2”

“字符串 3”

“字符串 15”

“字符串 17”

我希望字符串按上述方式排序。但是,当我使用 SortDescription 对我的列表进行排序时,我得到以下输出:

“字符串 1”

“字符串 15”

“字符串 17”

“字符串2”

“字符串 3”

我知道有一些算法可以实现这一点,但是有没有办法使用 SortDescription 的内置功能来做到这一点?

private void SortCol(string sortBy, ListSortDirection direction)
{
        ICollectionView dataView =
          CollectionViewSource.GetDefaultView(ListView.ItemsSource);

        dataView.SortDescriptions.Clear();

        SortDescription sd = new SortDescription(sortBy, direction);
        dataView.SortDescriptions.Add(sd);
        dataView.Refresh();
}
Run Code Online (Sandbox Code Playgroud)

sortby 是我的视图模型中属性的属性名称,它表示我想要排序的列。

似乎我只有两个排序选项是升序和降序。但是它对 CollectionView 进行排序的方式并不是我希望对字符串进行排序的方式。有没有简单的方法来解决这个问题?

c# sorting wpf gridview

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

Java Collat​​or 的数字比较选项

问题:

假设我们有以下字符串列表{"Test1.txt", "Test2.txt", "Test11.txt", "Test22.txt"},使用String::compareToor对它们Collator::compare进行排序将产生以下顺序:

Test1.txt
Test2.txt
Test22.txt
Test3.txt
Run Code Online (Sandbox Code Playgroud)

这很不方便(可以说),而更人性化的结果是:

Test1.txt
Test2.txt
Test3.txt
Test22.txt
Run Code Online (Sandbox Code Playgroud)

为了解决这个问题,我们可以编写自己的数字敏感的比较方法。但是,如果我们想要数字敏感排序以及使用现有实现Collator(或避免实现)进行国际化的好处,该怎么办?

有没有正确的方法来处理这个问题?或者也许有一个可靠的库可以解决这个问题?

其他语言:

在 Javascript 世界中,Intl.Collator的构造函数接受 a CollatorOption,它允许您设置配置来实现此类功能及更多功能:

const usCollator = Intl.Collator("us", { numeric: true });
const list = ["Test1.txt", "Test2.txt", "Test3.txt", "Test22.txt"];
list.sort(usCollator.compare);
console.log(list);
Run Code Online (Sandbox Code Playgroud)

java string numbers numeric collator

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

标签 统计

sorting ×7

java ×6

c# ×2

c++ ×2

comparator ×2

natural-sort ×2

string ×2

algorithm ×1

arrays ×1

c ×1

collator ×1

gridview ×1

guava ×1

linq ×1

numbers ×1

numeric ×1

wpf ×1