用于字符串比较的java.text.Collator。,
正在尝试使用collator验证两个字符串对象。以下是代码用于字符串比较的java.text.Collator。,,java,string,Java,String,正在尝试使用collator验证两个字符串对象。以下是代码 String myBubbleStr[] = {"zoon", "Hello", "World", "Yep", "Yow", "MyData"}; public void testCollatorStrings() { Collator collator = Collator.getInstance(); String toCompare = "yow"; for (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
-一,
我使用collators的原因是为了克服unicode对字符串比较的限制。谢谢。,输出看起来是正确的,因为Collator的特定实例生成的排序顺序只考虑了字母的大小写,用于断开连接 zoon按字母顺序在yow之后,因此返回值应为1 Hello按字母顺序在yow之前,因此返回值应为-1 World按字母顺序排在yow之前,因此返回值应为-1 Yep按字母顺序在yow之前,因此返回值应为-1 Yow按字母顺序与Yow相同,但以大写字母开头,因此返回值应为1 MyData按字母顺序在yow之前,因此返回值应为-1
您可以降低collator的强度,使只有大小写不同的字符串计算为相同的字符串。输出看起来是正确的,因为collator的特定实例生成的排序顺序只考虑字母大小写的大小写,以便于断开连接 zoon按字母顺序在yow之后,因此返回值应为1 Hello按字母顺序在yow之前,因此返回值应为-1 World按字母顺序排在yow之前,因此返回值应为-1 Yep按字母顺序在yow之前,因此返回值应为-1 Yow按字母顺序与Yow相同,但以大写字母开头,因此返回值应为1 MyData按字母顺序在yow之前,因此返回值应为-1
您可以降低collator的强度,使不同的字符串仅在大小写相同的情况下计算。Yow在比较中返回1而不是-1。但我明白你对zoon的解释Yow@SathishJayapal你说得对,我复制粘贴了相同的字符串,忘记了正确地修改所有内容。您的排序器将小写排序在大写之前。比较中的Yow返回1而不是-1。但我明白你对zoon的解释Yow@SathishJayapal你说得对,我复制粘贴了相同的字符串,忘记了正确地修改所有内容。你的拼贴器将小写字母排在大写字母之前。这在很大程度上取决于区域设置、强度和分解。有关一些API示例,请参见。在自然语言的情况下,排序顺序并不简单。在一些基于拉丁语的字母表中,Z可能位于A之前。如果对名称进行排序,可能会应用各种奇怪的规则。这在很大程度上取决于区域设置、强度和分解。有关一些API示例,请参见。在自然语言的情况下,排序顺序并不简单。在一些基于拉丁语的字母表中,Z可能位于A之前。如果对名称进行排序,可能会应用各种奇怪的规则。