[英]Java Unicode strings sorting
在Java中,如何比較Unicode字符串?
我的意思是,如果我有一些說法,日語字符串,當我執行以下操作時:
java.util.Arrays.sort(arrayOfJapaneseStrings);
這些字符串如何進行比較和排序?
默認情況下,字符串按字典順序按Unicode順序排序。 訂單是UTF-16,因此可能不是您想要的某些字符,但日語字符都在BMP中 ,所以您不應該遇到這些問題。
如果您想要不同的排序順序,可以使用java.text.Collator
類來定義不同的排序順序。
默認情況下,它采用UTF-16字節碼比較。 這是最快的方式,因此如果您只需要一些訂單就可以完美(例如,如果您稍后要使用二進制搜索,則需要它們按順序排列,但是“按順序”意味着什么並不重要,所以越快越好。
如果您需要對給定語言環境中的用戶有意義的排序,請使用java.text.Collator類。
根據compareTo
方法的String類。 看到javadoc :
按字典順序比較兩個字符串。 比較基於字符串中每個字符的Unicode值。 此
String
對象表示的字符序列按字典順序與參數字符串表示的字符序列進行比較。 如果此String
對象按字典順序位於參數字符串之前,則結果為負整數。 如果此String
對象按字典順序跟隨參數字符串,則結果為正整數。 如果字符串相等,結果為零;compareTo
恰好在{@link #equals(Object)}方法返回true
時返回0
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.