1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
| //~ Le Soundex Code est utilisé par les administrations américaines pour regrouper sous un même
//~ code les noms ayant des consonnances voisines. Le code que nous considèrons ici
//~ en est une version simplifiée, il associe à un nom l'abbréviation obtenue en applicant les quatres règles suivantes :
//~ a) Conserver la 1ere lettre du nom
//~ b) Supprimer toutes les voyelles apparaissent ensuite
//~ c) Remplace les lettres doublées par une seule
//~ d) 4 lettres max
//~ Dupont ---> DPNT
//~ Lloyd ---> LD
//~ Rastatopoulos ---> RSTT
public class soundex{
public static char firstChar(String name){
/*Var*/
char first;
/*Body*/
first = (name.charAt(0));
return first;
}
public static String vowel(String name){ //Suppression de toutes les voyelles : traite le nom mais pas la premiere lettre quelqu'elle soit
/*Var*/
String name_without_vowel= " " , name2;
int cpt;
int length;
char char_current;
/*Body*/
name = name.substring(1); // exlus la premiere lettre
System.out.println(name);
length = name.length(); // mesure la taille de 'name' sans la premiere lettre
System.out.println(length);
name2=name;
String str="";
for(cpt=0;cpt<=length;cpt++){
char_current=name2.charAt(cpt);
System.out.println(cpt);
if((char_current=='a' || char_current=='e' || char_current=='i' || char_current=='o' || char_current=='u' || char_current=='y' )){
System.out.println("dans le if");
name2 = name2.substring(cpt+1,length);
name = name.substring(0,cpt);
name2 = name.concat(name2);
cpt=-1/*cpt-1*/; //-1 pour recommencer le test a la premiere lettre ou 'cpt-1' pour reprendre le test
System.out.println(name2);
}
System.out.println("hors du if");
}
name_without_vowel= name2;
return name_without_vowel;
}
public static void main (String [] args){
/*Var*/
String Name;
/*Body*/
System.out.println("Nom : ");
Name= Clavier.readString();
//System.out.println(firstChar(Name));
System.out.println(vowel(Name));
}
} |
Partager