【发布时间】:2016-03-04 04:02:18
【问题描述】:
我需要检查表格中的排序,表格内容是由 MySQL 给出的。我正在尝试以下操作:
Collections.sort(sorted, String.CASE_INSENSITIVE_ORDER);
并得到以下结果:tes3@test.com test4@test.com test5@test.comtest@test.com test_user@mail.comuser-og@driver.com
这是我通过查询从 MySQL 得到的:SELECT 'email' FROM 'user' WHERE 1 ORDER BY 'user'.'email' ASC :
tes3@test.com test_user@mail.com test@test.com test4@test.com test5@test.comuser-og@driver.com
似乎Java根据ASCII表排序:
http://www.asciitable.com/
4 (52) - @ (64) - _ (95)
但在 MySQL 结果中,顺序是 _ -> @ -> 4
email 字段排序规则为:utf8_unicode_ci
有什么问题,是否有任何比较器可以以相同的方式进行排序?
【问题讨论】:
-
AFAIK java 处理
_不同,然后在您排序时它们在 sql 中得到处理。但造成这种情况的原因可能是您的本地语言设置。 -
你是如何在你的代码中做到这一点的?
标签: java mysql sorting collections comparator