尝试使用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。
根据documentation


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


但是我得到的输出是


  1个
   -1
   -1
   -1 1
  -1


可以寻求帮助,如何获得此验证。,使用排序规则的原因是为了字符串比较而超过了unicode的限制。谢谢。,

最佳答案

输出看起来是正确的,因为Collator的特定实例产生的排序规则仅考虑平局决胜的情况。


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


您可以降低整理器的强度,以使仅在大小写相同的情况下才不同的字符串。

关于java - java.text.Collat​​or用于字符串比较。,,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18089681/

10-15 08:26