0

可能重复:
如何在 Android 的数组中正确排序大写和小写字符串?

我必须按字母顺序对 CLI 参数的子集进行排序。因此,要对子集进行排序,请使用以下代码:

// Ignore args[0], sort the rest
Arrays.sort(args, 1, args.length);

为了排序忽略大小写,我必须使用某种比较器对象。要使用比较器对子集进行排序,有以下方法签名:

Arrays.sort(array, from, to, comp);

是否可以不在单独的行上创建比较器对象并将其包含在 Arrays.sort() 签名中(整洁且易于理解)?

4

2 回答 2

3

您可以使用内置的比较器 String.CASE_INSENSITIVE_ORDER

Arrays.sort(args, 1, args.length, String.CASE_INSENSITIVE_ORDER);
于 2012-11-11T20:44:53.180 回答
2

您可以定义和初始化一个匿名类实现Comparator例如

new Comparator<Whatever> {
   public int compare(Whatever w1, Whatever w2) {
      // implementation
   }
   // etc...
}

并在方法中内联即执行此操作Arrays.sort()

Arrays.sort(array, from, to, new Comparator<Whatever>{....});

如果比较器实现不重要,则缺点是可读性,当然,您不能在其他地方使用该比较器。但是,如果比较器特别小,它可能有助于提高可读性,因为实现清晰可见。

于 2012-11-11T20:42:51.627 回答