繁体   English   中英

Java Unicode字符串排序

[英]Java Unicode strings sorting

在Java中,如何比较Unicode字符串?

我的意思是,如果我有一些说法,日语字符串,当我执行以下操作时:

java.util.Arrays.sort(arrayOfJapaneseStrings);

这些字符串如何进行比较和排序?

默认情况下,字符串按字典顺序按Unicode顺序排序。 订单是UTF-16,因此可能不是您想要的某些字符,但日语字符都在BMP中 ,所以您不应该遇到这些问题。

如果您想要不同的排序顺序,可以使用java.text.Collator类来定义不同的排序顺序。

默认情况下,它采用UTF-16字节码比较。 这是最快的方式,因此如果您只需要一些订单就可以完美(例如,如果您稍后要使用二进制搜索,则需要它们按顺序排列,但是“按顺序”意味着什么并不重要,所以越快越好。

如果您需要对给定语言环境中的用户有意义的排序,请使用java.text.Collat​​or类。

根据compareTo方法的String类。 看到javadoc

按字典顺序比较两个字符串。 比较基于字符串中每个字符的Unicode值。 String对象表示的字符序列按字典顺序与参数字符串表示的字符序列进行比较。 如果此String对象按字典顺序位于参数字符串之前,则结果为负整数。 如果此String对象按字典顺序跟随参数字符串,则结果为正整数。 如果字符串相等,结果为零; compareTo恰好在{@link #equals(Object)}方法返回true时返回0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM