Conversion des lettres par des lettres avec accent
Bonjour,
J'aimerai à partir d'un caractère donné, retourner ses équivalents avec accents. Donc pour pouvoir faire ça j'ai :
Code:
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
|
public static String[] convert(String str){
if(Character.isUpperCase(str.indexOf(0))){
if(str.equals("A")){
return new String[]{new Character((char) 192).toString(), new Character((char) 193).toString(), new Character((char) 194).toString(),
new Character((char) 195).toString(), new Character((char) 196).toString(), new Character((char) 197).toString()};
}else if(str.equals("E")){
return new String[]{new Character((char) 200).toString(), new Character((char) 201).toString(), new Character((char) 202).toString(),
new Character((char) 203).toString()};
}else if(str.equals("I")){
return new String[]{new Character((char) 204).toString(), new Character((char) 205).toString(), new Character((char) 206).toString(),
new Character((char) 207).toString()};
}else if(str.equals("O")){
return new String[]{new Character((char) 210).toString(), new Character((char) 211).toString(), new Character((char) 212).toString(),
new Character((char) 213).toString()};
}else if(str.equals("U")){
return new String[]{new Character((char) 217).toString(), new Character((char) 218).toString(), new Character((char) 219).toString(),
new Character((char) 220).toString()};
}else if(str.equals("Y")){
return new String[]{new Character((char) 159).toString(), new Character((char) 221).toString()};
}
}
return null;
} |
Pour expliquer vite fait mes choix de variables : je prends en paramètre une String qui contient le ou les caractères (dans les cas particulier du ae, oe qui donnerai æ, œ etc) et je retourne un tableau de String pour pouvoir l'afficher dans une JTable et faciliter le remplacement des "anciens" caractères par ceux proposé dans les tableaux.
Je pense que je pourrai passer par des double casts mais je trouve ca plus "propre" perso de passer par l'objet Character. Petite précision, chaque entier correspond à la valeur décimale du caractère dans la table ASCII.
Donc la question est : Est-ce la bonne méthode? il n'y a pas plus simple? J'ai l'impression d'y aller comme un barbare...
Merci d'avance pour votre aide