import java.util.Locale;
import java.util.ArrayList;
import java.util.Collections;
import java.text.Collator;
public class Test {
public static void main(String[] args) {
Collator lCollator = Collator.getInstance(Locale.FRENCH);
ArrayList lList = new ArrayList();
lList.add("raté");
lList.add("rate");
lList.add("Raté");
lList.add("Ratiboisé");
lList.add("Albert Einstein");
lList.add("aliment");
lList.add("Zorro");
lList.add("Albert");
lList.add("Ratés");
lCollator.setStrength(Collator.PRIMARY);
Collections.sort(lList, lCollator);
System.out.println("Tri : \n" + lList);
lCollator.setStrength(Collator.SECONDARY);
Collections.sort(lList, lCollator);
System.out.println("Tri : \n" + lList);
lCollator.setStrength(Collator.TERTIARY);
Collections.sort(lList, lCollator);
System.out.println("Tri : \n" + lList);
lCollator.setStrength(Collator.IDENTICAL);
Collections.sort(lList, lCollator);
System.out.println("Tri : \n" + lList);
}
J'obtiens :
Tri :
[Albert, Albert Einstein, aliment, raté, rate, Raté, Ratés, Ratiboisé, Zorro]
Tri :
[Albert, Albert Einstein, aliment, rate, raté, Raté, Ratés, Ratiboisé, Zorro]
Tri :
[Albert, Albert Einstein, aliment, rate, raté, Raté, Ratés, Ratiboisé, Zorro]
Tri :
[Albert, Albert Einstein, aliment, rate, raté, Raté, Ratés, Ratiboisé, Zorro]
Pourquoi le setStrength(..) ne change rien ?
Qu'ai je mal fait ?
Merci
# Re: Problème Java et Collator
Posté par Sébastien Koechlin . Évalué à 1.
import java.text.*;
public class test1 {
static String a = "A";
static String b = "a";
static String c = "à";
public static final void main( String[] argv ) {
System.out.println( "PRIMARY" );
diff( Collator.PRIMARY );
System.out.println( "SECONDARY" );
diff( Collator.SECONDARY );
System.out.println( "TERTIARY" );
diff( Collator.TERTIARY );
System.out.println( "IDENTICAL" );
diff( Collator.IDENTICAL );
}
static void diff( int strengh ) {
System.out.println( "> " + a + " " + a + " -> " + comp( a, a, strengh ) );
System.out.println( "> " + b + " " + a + " -> " + comp( b, a, strengh ) );
System.out.println( "> " + c + " " + a + " -> " + comp( c, a, strengh ) );
}
static String comp( String a, String b, int strengh ) {
Collator col = Collator.getInstance(java.util.Locale.FRENCH);
col.setStrength(strengh);
return col.compare(a,b) == 0 ? "egale" : "différent";
}
}
Ca donne :
PRIMARY
> A A -> egale
> a A -> egale
> à A -> egale
SECONDARY
> A A -> egale
> a A -> egale
> à A -> différent
TERTIARY
> A A -> egale
> a A -> différent
> à A -> différent
IDENTICAL
> A A -> egale
> a A -> différent
> à A -> différent
# Re: Problème Java et Collator
Posté par Infernal Quack (site web personnel) . Évalué à 1.
J'avais pas vu le 'raté' et 'rate' intervertis. Au temps pour moi. Et de plus l'ordre initiale doit être responsable de l'inertie du résultat.
Merci
L'association LinuxFr ne saurait être tenue responsable des propos légalement repréhensibles ou faisant allusion à l'évêque de Rome, au chef de l'Église catholique romaine ou au chef temporel de l'État du Vatican et se trouvant dans ce commentaire
[^] # Re: Problème Java et Collator
Posté par Infernal Quack (site web personnel) . Évalué à 1.
L'association LinuxFr ne saurait être tenue responsable des propos légalement repréhensibles ou faisant allusion à l'évêque de Rome, au chef de l'Église catholique romaine ou au chef temporel de l'État du Vatican et se trouvant dans ce commentaire
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.