Sắp xếp chuỗi bằng số được thực hiện khác nhau từ ngôn ngữ này sang ngôn ngữ khác. Ví dụ, trong các chữ số tiếng Anh đến trước chữ cái trong một phân loại tăng dần. Nhưng, bằng tiếng Đức, chữ số được tăng lên sau khi sắp xếp chữ cái.Phân loại ngôn ngữ (tiếng Đức) bằng Java
tôi đã cố gắng để sắp xếp chuỗi sử dụng một Collator
như sau:
private Collator collator = Collator.getInstance(Locale.GERMANY);
collator.compare(str1, str2)
Nhưng trên so sánh không tính đến số tài khoản sau khi quy tắc chữ cái.
Có ai có một ý tưởng tại sao Java không dùng quy tắc này (chữ số sau chữ) vào tài khoản trong thời gian này tôi đang sử dụng RuleBasedCollator
như sau:
private final String sortOrder = "< a, A < b, B < c, C < d, D < e, E < f, F < g, G < h, H < i, I < j, J < k, K < l, L < m, M < n, N < o, O < p, P < q, Q < r, R < s, S < t, T < u, U < v, V < w, W < x, X < y, Y < z, Z < 0 < 1 < 2 < 3 < 4 < 5 < 6 < 7 < 8 < 9";
private Collator collator = new RuleBasedCollator(sortOrder);
Có ý rằng bạn không có umlauts và Sharp-s (äöüß) trong thứ tự sắp xếp của bạn? Tôi muốn nói rằng họ rất quan trọng vì có một nhà sưu tập người Đức. –
có, đối với trường hợp thử nghiệm tôi đã bỏ qua các dấu âm và ký tự đặc biệt. chỉ muốn giữ nó rất đơn giản. – Amir
Ngoài ra: các quy tắc nào bạn thực hiện theo các chữ số sắp xếp đó sau các ký tự khác? Có một số collations khác nhau cho tiếng Đức và ít nhất một số trong những số phân loại đầu tiên. –