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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.
Partager