Nestor a écrit :
Bonjour, existe-t-il un moyen simple de remplacer un ou plusieurs caractères spécial dans une chaîne par la valeur ASCII approchante ? (par exemple un "é" par un "e" mais on peut aussi étendre ça aux caractères spéciaux des autres langues). Merci de votre aide.
|
Si tu veux être compatible avec toutes les langues t'as du taf.
Pour le français ça peut donner ça :
Code :
- public static String translate(String src)
- {
- StringBuffer result = new StringBuffer();
- if(src!=null && src.length()!=0)
- {
- int index = -1;
- char c = (char)0;
- String chars= "àâäéèêëîïôöùûüç";
- String replace= "aaaeeeeiioouuuc";
- for(int i=0; i<src.length(); i++)
- {
- c = src.charAt(i);
- if( (index=chars.indexOf(c))!=-1 )
- result.append(replace.charAt(index));
- else
- result.append(c);
- }
- };
- return result.toString();
- }
|
Je passe pas par String.replaceAll() car
- car ça passe par le package de regexp et pas forcément plus rapide
mais je me trompe peut-être !!!
- C'est compatible tout JDK 1.2+