Collat​​or没有在我的Mac上工作

时间:2012-01-04 21:44:15

标签: java internationalization

我正在尝试编写一些代码,这些代码在java中使用Collat​​or功能来比较字符串,但我的计算机似乎没有正常运行。这是代码:

Collator myCollator = Collator.getInstance(Locale.FRANCE);
System.out.println( "ças vs zed: " + myCollator.compare("ças", "zed"));
System.out.println( "cas vs zed: " + myCollator.compare("cas", "zed"));

以下是我在计算机上运行此代码时会发生的情况:

ças vs zed: 1 
cas vs zed: -1

但是当我在ideone.com上运行它时,我得到了我想要的答案:

ças vs zed: -1
cas vs zed: -1

以下是我在计算机上运行的java版本(运行OS X 10.6.8的Mac):

java version "1.6.0_29"
Java(TM) SE Runtime Environment (build 1.6.0_29-b11-402-10M3527)
Java HotSpot(TM) 64-Bit Server VM (build 20.4-b02-402, mixed mode)

为什么我的计算机会给出不同的(错误的)结果,我该如何解决?

2 个答案:

答案 0 :(得分:1)

我只是在我的机器上运行它(运行OS X 10.7.2 / Lion的Mac):

ças vs zed: -1
cas vs zed: -1

Java版:

java version "1.6.0_29"
Java(TM) SE Runtime Environment (build 1.6.0_29-b11-402-11M3527)
Java HotSpot(TM) 64-Bit Server VM (build 20.4-b02-402, mixed mode)

我正在使用英国语言​​环境运行它。

抱歉这没有帮助,但显示它不是特定于Mac的 - 可能是Snow Leopard?

答案 1 :(得分:1)

可能是Collat​​or的初始化方式不同,因为它从操作系统获得了一些结果?

Collat​​or.getDecomposition()在两台机器上返回什么,以及您为该区域设置返回的Collat​​or?