Tag: 自然排序

寻找字母顺序和自然顺序的组合(又名用户理智排序)

我认为这很容易找到premade,但似乎我在网上找到的任何解决方案只能解决部分问题。 我想对用户提供的文件名列表(文件大多以人和/或地址命名),有时用不同语言(大多数是德语,有点法语和意大利语混合在一起) ,很少有任何其他西方语言)。 我们的想法是以(德国)用户普遍认为合理的方式呈现此列表。 这意味着订单应该遵循Locale.GERMAN的java.text.Collat​​or ,但同时期望是对字符串中的数字进行例外处理,因此“10”在“2”之后。 我找到了在网上进行自然排序的代码,但它依赖于逐字符比较(而Collat​​or不支持)。 我可以使用子字符串来破解某些内容,但在比较器内部,我认为在每次比较调用时创建多个子字符串并不是最明智的想法。 任何想法如何有效地实现这一点(在执行时间和实现时间),或者更好的是经过测试和即用的实现?

Java字符串数字比较器

我有一个方法返回需要排序的String列表。 但是,我遇到了旧的字符串数字排序问题,并想知道是否有人可以协助比较器实现或指向我的方向。 该列表将返回一个列表: State Lower Legislative District 1 State Lower Legislative District 11 State Lower Legislative District 12 … State Lower Legislative District 2 … State Lower Legislative District 100 … State Upper Legislative District 1 State Upper Legislative District 11 … 所以,首先我需要做一个基本的String排序,但是我需要按数字排序。 要排序的数字应该总是跟踪,可能是2或3位数。 (编辑)我最初的想法是在空格上拆分字符串,在数字部分运行StringUtils.isNumeric,然后排序。 但是,这对我来说似乎有些麻烦。 有人可以帮忙吗?