我有代码:
List<String> list = new ArrayList<String>();
list.add("10.160.0.100;14/Nov/201107:22:38;/;-;");
list.add("10.160.0.100;14/Nov/201108:54:31;/;-;");
list.add("10.160.0.10;16/Nov/201112:56:38;/;-;");
list.add("10.160.0.100");
list.add("10.160.0.100");
list.add("10.160.0.10");
Collections.sort(list);
for (String temp : list) {
System.out.println(temp);
}
输出是:
10.160.0.10
10.160.0.100
10.160.0.100
10.160.0.100;14/Nov/201107:22:38;/;-;
10.160.0.100;14/Nov/201108:54:31;/;-;
10.160.0.10;16/Nov/201112:56:38;/;-;
为什么?我需要这个输出:
10.160.0.10
10.160.0.100
10.160.0.100
10.160.0.10;16/Nov/201112:56:38;/;-;
10.160.0.100;14/Nov/201107:22:38;/;-;
10.160.0.100;14/Nov/201108:54:31;/;-;
最佳答案
因为在 ASCII 中,;
字符的编号高于 0
字符。
关于sorting - 数组列表的排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13218663/