gpt4 book ai didi

java - 如果在单个变量名称和数字中都存在,如何在 java 中进行排序

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:06:31 24 4
gpt4 key购买 nike

我正在做一个排序的事情,所以我正在使用 java spring boot 并且我正在使用当前排序的流

排序代码是:-

projectResponse.setDetails(v.stream()
.sorted(Comparator.comparing(StateResponse::getState)
.thenComparing(Comparator.comparing(NameResponse::getName)))
.collect(Collectors.toList()));

首先按州排序,然后按姓名排序。

我的名字的值类似于:“name-98”,“name-99”,“name-100”所以当它排序时它正确排序直到 99 但是当 100 出现时它是第一个排序的数字然后排序是正确的从 100,101,102 并且当 no 将超过 999 然后排序将来自 1000,1001 正确时会再次出现这种情况.克服它的最佳解决方案是什么?

最佳答案

使用自定义比较器很有帮助,它可以按数字顺序对数字进行排序,同时按字母顺序对文本进行排序。这通常被称为“自然排序”。这是一个执行此操作的实现:http://www.davekoelle.com/alphanum.html .

在流操作中使用它:

thenComparing(NameResponse::getName, new AlphanumComparator())

关于java - 如果在单个变量名称和数字中都存在,如何在 java 中进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54176161/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com