关于Java对中文排序的问题

 

1 Comparator chinese_cmp = Collator.getInstance(Locale.CHINA);
2   
3 String[] strs = new String[] { "王五", "李二", "吴二" };
4 Arrays.sort(strs, chinese_cmp);
5 for (String str : strs)
6       System.out.println(str);

上面这段代码是用来对中文进行排序,执行后的结果是:


李二
王五
吴二


但是,如果运行这个程序的时候指定了扩展jar包路径,例如

java -Djava.ext.dirs=xxxx   类名

得到的结果就变成了

吴二
李二
王五


百思不得其解,想起以前做加密的时候也曾遇见类似的问题,明明一个运行很好的程序放到其他地方就不能跑,原因是跟jre的扩展lib目录中的jar包问题,再次打开 JRE/lib/ext 目录发现有这么一个文件 localedata.jar,猜想应该跟这个文件有关,把这个文件拷贝到手工指定的扩展jar包路径xxxx中后,再次运行程序,问题解决。

 

http://www.oschina.net/question/12_152

posted @ 2012-10-05 20:05  巽曌  阅读(316)  评论(0)    收藏  举报