L'ordinamento di una stringa con il numero viene eseguito in modo diverso da una lingua all'altra. Ad esempio, in cifre in inglese vengono prima delle lettere in un ordinamento crescente. Ma, in tedesco, le cifre sono ascendenti ordinate dopo le lettere.Ordinamento linguistico (tedesco) con Java
Ho cercato di ordinare le stringhe utilizzando un Collator
come segue:
private Collator collator = Collator.getInstance(Locale.GERMANY);
collator.compare(str1, str2)
Ma soprattutto il confronto non si tiene conto cifre dopo regola lettere.
Se uno ha un idea del perché Java non sta prendendo questa regola (cifre dopo la lettera) in considerazione per il momento che sto usando RuleBasedCollator
come segue:
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);
E 'intenzionale che non si dispone di dieresi e la Sharp-s (äöüß) nel vostro ordinamento? Direi che sono importanti per avere un collezionista tedesco. –
sì, per il caso di test ho omesso umlaut e caratteri speciali. volevo solo tenerlo molto semplice. – Amir
Inoltre: quali regole si seguono le cifre di ordinamento dopo gli altri caratteri? Esistono diverse regole di confronto per il tedesco e almeno alcuni di questi numeri per primi. –