1055 et 41F, c'est le même nombre, l'un écrit en décimal et l'autre en hexadécimal.
Moralité : le mieux est que tu fasses une fonction dédiée qui, recopiant ta chaine dans une nouvelle chaine (avec StringBuffer), recherche tous les "&#aaaa;", extrait les nombres décimaux (Integer.parseInt(...)), les convertit en hexadécimal (Integer.toString(..., 16)).
Attention, si l'entité HTML est "ꪪ", le nombre est déjà en hexadécimal (inutile alors de le convertir).