Aleph Zero ha scritto:
a : \uD835\uDC4E
...
z : \uD835\uDC67
Innanzitutto sono 2 char per ciascuno di quei caratteri perché quelli sono i cosiddetti "surrogate pairs". Lo standard Unicode contempla molto più che 65536 caratteri. Per rappresentare in UTF-16 quei caratteri oltre 65535 hanno inventato questa codifica per cui appunto servono 2 caratteri a 16 bit (il char di Java).
Comunque la conversione si può fare sicuramente in svariati modi. Tra questi anche sicuramente con l'uso ("furbo") delle espressioni regolari.
Banalmente anche andando a cercare nella stringa gli \uD835 e verificare se il char successivo è tra \uDC4E e \uDC67 .
EDIT: se puoi usare almeno Java 9, c'è il bel replaceAll?(Function<MatchResult,String> replacer) di Matcher che è stato introdotto.
Se fai un Pattern in cui c'è una "classe di caratteri" tra due code-point, poi puoi banalmente rimpiazzare il surrogate pair con il carattere a-z corrispondente.
Vedi qui il Mathematical Italic Small A: