【问题标题】:Insensitive Sorting with comparator使用比较器进行不敏感排序
【发布时间】:2018-01-03 17:42:46
【问题描述】:

如何使用整理器或比较器使用 String.CASE_INSENSITIVE_ORDER 对字符串进行排序?实际上,我该如何组合它们?

Comparator comparator=(Collator.getInstance(Locale.forLanguageTag(inputs.getLocale())));

Collections.sort(lines,String.CASE_INSENSITIVE_ORDER);

【问题讨论】:

  • 您想对字符串集合进行排序而不考虑大小写,如下所示:ALMOST、Always、another、bread、GREAT、zeus?
  • 有点像 (a h m e t A H M E T -> A a E e H h M m T t)

标签: java string sorting comparator collator


【解决方案1】:

String.CASE_INSENSITIVE_ORDER 本身就是一个静态比较器。

https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#CASE_INSENSITIVE_ORDER

您可以使用 thenComparing 链接多个比较器 例如。

Comparator<String> cmp = Comparator.comparingInt(String::length)
             .thenComparing(String.CASE_INSENSITIVE_ORDER);

https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html#thenComparing-java.util.Comparator-

【讨论】:

  • 谢谢,但我想把土耳其字母表中的单词按正确的顺序排列,包括 ş,ç,ü,ö。
猜你喜欢
  • 2012-09-26
  • 2012-09-03
  • 2014-10-21
  • 2013-09-14
  • 1970-01-01
  • 1970-01-01
  • 2018-04-08
  • 1970-01-01
相关资源
最近更新 更多