Problème de tri avec compartTo
Bonjour,
J'ai un petit souci de comparaison de String. En effet, j'essaie de trier un vecteur avant l'affichage des informations contenues par celui-ci. Je vous met le bout de code correspondant afin d'imaginer un peu ce que je désire faire.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
private class TrieurECO extends SortEngine
{
public boolean compareElements(int firstElementIndex, int secondElementIndex)
{
ArticleInfos serialInfos1 = (ArticleInfos)GetVector().elementAt(firstElementIndex);
String chaine1 = serialInfos1.ECO;
ArticleInfos serialInfos2 = (ArticleInfos)GetVector().elementAt(secondElementIndex);
String chaine2 = serialInfos2.ECO;
return (chaine2.compareTo(chaine1)<0);
}
private TrieurECO(Vector v)
{
super(v);
}
} |
La fonction de tri, en elle même, s'exécute mais pas exactement comme je le voudrais.
En effet, dans les strings que je veux trier, certains correspondent à un numéro: 138, 56789, 1987 (ceux-là sont bien triés). Mais parmis eux, se trouvent aussi des chaînes alphanumériques type: ECO29, ECO122, ECO1115, ECO1116.
Si on considère le vecteur suivant: 138, 56789, 1987, ECO29, ECO122, ECO1115, ECO1116.
Le tri que j'attends est celui-ci:
138
1987
56789
ECO29
ECO122
ECO1115
ECO1116
Et ce que me retourne ma fonction actuellement est:
138
1987
56789
ECO1115
ECO1116
ECO122
ECO29
Quelqu'un connait-il la raison pour laquelle il considère ECO122 comme supérieur à ECO1115?
D'avance merci.
Bertrand.