Tôi có một vấn đề trong việc so sánh strings.I muốn so sánh hai "ed" và "ef" văn bản tiếng Pháp như thế nàyjava CollationKey sắp xếp sai
Collator localeSpecificCollator = Collator.getInstance(Locale.FRANCE);
CollationKey a = localeSpecificCollator.getCollationKey("éd");
CollationKey b = localeSpecificCollator.getCollationKey("ef");
System.out.println(a.compareTo(b));
này sẽ in -1
, nhưng trong bảng chữ cái tiếng Pháp e
đến trước é
. Nhưng khi chúng ta so sánh chỉ e
và é
như
Collator localeSpecificCollator = Collator.getInstance(Locale.FRANCE);
CollationKey a = localeSpecificCollator.getCollationKey("é");
CollationKey b = localeSpecificCollator.getCollationKey("e");
System.out.println(a.compareTo(b));
kết quả này là 1
. Bạn có thể cho chúng tôi biết có gì sai trong phần đầu của mã không?
anh có chữ "cùng vấn đề" (Tôi nghĩ khá chấp nhận được) với ' 'Swing' Comparator' và triển khai nó cho RowSorter'' and' RowFilter' trong' 'JTable' cho Win1250-2' eq. 'ISO 8859-1/2', cho tất cả các phi ASCII đâu xe tăng được sắp xếp trên cuối ví dụ e -> e ei, xin lỗi không bao giờ cần thiết để giải quyết đó, Bởi vì là khá chấp nhận được và đặt logic với – mKorbel