2

尝试使用 Collat​​ors 来验证几个 String 对象。,这是代码。,

String myBubbleStr[] = {"zoon", "Hello", "World", "Yep", "Yow", "MyData"};
    public void testCollatorStrings() {
        Collator collator = Collator.getInstance();
        String toCompare = "yow";
        for (String collatorCompare : myBubbleStr) {
            System.out.println(collator.compare(collatorCompare, toCompare));

        }
    }

我对输出的期望是-1,-1,-1,-1,1,-1。根据文档

返回一个整数值。如果源小于目标,则值小于零,如果源和目标相等,则值为零,如果源大于目标,则值大于零。

但我得到的输出是

1 -1 -1 -1 1 -1

有人可以帮忙,如何进行此验证。,使用整理器的原因是超过了字符串比较的 unicode 限制。谢谢。,

4

1 回答 1

4

输出看起来是正确的,因为特定实例生成的排序规则Collator仅考虑了字母的大小写以进行平局。

  • zoon是在yow字母顺序之后,所以返回值应该是1
  • Hello是在yow字母顺序之前,所以返回值应该是-1
  • World是在yow字母顺序之前,所以返回值应该是-1
  • Yep是在yow字母顺序之前,所以返回值应该是-1
  • Yow与字母顺序相同yow,但以大写字母开头,因此返回值应为1
  • MyData是在yow字母顺序之前,所以返回值应该是-1

您可以降低整理者的强度以使仅在评估为相同时才不同的字符串。

于 2013-08-06T20:24:28.550 回答