1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| public static String unescape(String str) {
// On recherche les &#...;
Pattern pattern = Pattern.compile("&#([0-9]+);");
Matcher matcher = pattern.matcher(str);
if (matcher.find()) {
StringBuffer buf = new StringBuffer(str.length());
do {
// On récupère le code associé à la valeur numérique
char code = (char) Integer.parseInt(matcher.group(1));
// Et on effectue le remplacement :
matcher.appendReplacement(buf, Character.toString(code));
} while (matcher.find());
// On retourne la chaine modifié
return matcher.appendTail(buf).toString();
}
// On retourne la chaine tel quel si aucune modif n'a été faite :
return str;
} |
Partager