我正在尝试编写一些代码,这些代码在java中使用Collator功能来比较字符串,但我的计算机似乎没有正常运行。这是代码:
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)
为什么我的计算机会给出不同的(错误的)结果,我该如何解决?
答案 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)
可能是Collator的初始化方式不同,因为它从操作系统获得了一些结果?
Collator.getDecomposition()在两台机器上返回什么,以及您为该区域设置返回的Collator?