gpt4 book ai didi

java - 我需要根据正则表达式模式对名称进行排序,我该怎么做?

转载 作者:行者123 更新时间:2023-11-29 03:51:48 25 4
gpt4 key购买 nike

我需要对名称进行排序。这些名字有时会与数字一起统计,如果名字有,如果没有,我该如何对数字进行排序。目前我只对字母进行排序。

Ex: 3.Animal
1.Box
4.Monkey
2.Tiger

但我需要在上面显示如下。

1.Box
2.Tiger
3.Animal
4.Monkey

我需要正则表达式吗?如果需要,我需要什么正则表达式?

如果没有,我如何在 java 中进行。

提前致谢。

最佳答案

正则表达式似乎是合理的第一步。你知道Comparator吗?它定义了一个方法 int compare(T one, T two)它具有通常的 int-as-comparison-result 语义。一旦你有一个 Comparator 的实例,你可以将它传递给排序方法,例如 Collections.sort .

因此,一种方法是编写 Comparator<String>谁的compare方法使用正则表达式提取两个字符串的数字部分,然后进行数值比较。这样做的问题是每次查看每个 String 时都会进行解析,这可能会变得很昂贵。

另一种方法是创建一个 TreeMap<Integer,String> ,并插入键值对,其中键是解析后的 int,值是原始 String。然后您可以迭代值集,它们将按键顺序出现。我可能会采用这种方法。

编辑 yytg 提出了一个很好的观点,那就是对于这样一个简单的解析,你可以在 "\\." 上进行拆分。 (限制为 2)并解析左侧。您也可以使用 String.indexOf找到点然后String.substring获取点左侧的字符串部分。

关于java - 我需要根据正则表达式模式对名称进行排序,我该怎么做?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8427412/

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