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.