在Java中对字符串数组的子集进行排序,忽略大小写

时间:2012-11-11 20:40:39

标签: java arrays

  

可能重复:
  How to properly sort upper and lowercase Strings in Array in Android?

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

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

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

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

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

2 个答案:

答案 0 :(得分:3)

您可以使用built in comparator String.CASE_INSENSITIVE_ORDER

Arrays.sort(args, 1, args.length, String.CASE_INSENSITIVE_ORDER);

答案 1 :(得分:2)

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

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

并执行内联,即在Arrays.sort()方法中。

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

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