¿Hay una forma de expresión regular para reemplazar un conjunto de caracteres con otro conjunto (como el comando shell tr)?

La cáscaratr comando de soporte reemplazar un conjunto de caracteres con otro conjunto. Por ejemplo,echo hello | tr [a-z] [A-Z] se traduciráhello aHELLO.

En java, sin embargo, debo reemplazar cada personaje individualmente como el siguiente

"10 Dogs Are Racing"
    .replaceAll ("0", "0")
    .replaceAll ("1", "1")
    .replaceAll ("2", "2")
    // ...
    .replaceAll ("9", "9")
    .replaceAll ("A", "A")
    // ...
;

losapache-commons-lang biblioteca proporciona un convenientereplaceChars Método para hacer dicho reemplazo.

// half-width to full-width
System.out.println
(
    org.apache.commons.lang.StringUtils.replaceChars
    (
        "10 Dogs Are Racing",
        "0123456789ABCDEFEGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",
        "0123456789ABCDEFEGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
    )
);
// Result:
// 10 Dogs Are Racing

Pero como puede ver, en algún momento los searchChars / replaceChars son demasiado largos (también demasiado aburridos, si lo desea, encuentre un carácter duplicado) y puede expresarse con una simple expresión regular[0-9A-Za-z]/[0-9A-Za-z]. ¿Hay una forma de expresión regular para lograr eso?

Respuestas a la pregunta(2)

Su respuesta a la pregunta