-1
public class BioDiesel {
            public static void main(String args[]) {
                LinkedList<String> list = new LinkedList<String>();
                list.add("BbB1");
                list.add("bBb2");
                list.add("bbB3");
                list.add("BBb4");
                Collections.sort(list);
                for (String str : list) {
                    System.out.print(str + ":");
                }
            }
}

代码运行良好并按排序顺序显示结果。有人可以解释在上面提供的字符串元素的情况下如何执行排序吗?

输出是怎么来的:

BBb4:BbB1:bBb2:bbB3:
4

2 回答 2

1

假设我正确理解了您的问题,这应该有效:

Collections.sort(list, String.CASE_INSENSITIVE_ORDER);

String.CASE_INSENSITIVE_ORDER是一个比较器类,在比较字符串时忽略大小写。

于 2012-07-13T14:04:17.833 回答
0

让我们从以下文档Collections.sort开始:

根据其元素的自然顺序,将指定列表按升序排序。

字符串的自然顺序是什么?String可以告诉我们

比较基于字符串中每个字符的 Unicode 值。

当然, 的 unicode 值b高于 的 unicode 值B

如果你想要一个不区分大小写的排序,有一种形式sort需要 a Comparator,并String有助于提供一个预制的CASE_INSENSITIVE_ORDER比较器。

于 2012-07-13T14:09:40.050 回答