Wie kann man einen Integer in eine gültige Unicode-Character-Darstellung umwandeln?

Unicode-Character können in Java auch als hexadezimale 4-stellige Ziffernfolge mit vorausgehendem '\u' angegeben werden. Durch Auffüllen mit '0' lässt sich ein hexadezimaler Wert entsprechend ergänzen.

Im Beispiel wird ein dezimaler Wert (hier 25610) durch die statische Methode toHexString(int i) der Klasse Integer in ein String-Literal des entsprechenden hexadezimalen Wertes gewandelt. Es wird der Methode fillWithZero(String s, int digits) als Parameter übergeben. Deren zweiter Parameter gibt die Anzahl der benötigten Gesamtstellen an, die nach links durch '0' aufgefüllt werden sollen.
Die Java-Unicode-Character-Werte sind vierstellig. In einer Schleife werden schließlich von links nach rechts Nullen an den vorbelegten String \\u angefügt, bis sich mit dem übergebenen Hexadezimalwert ein vierstelliger Wert bezogen auf die Ziffernstellen ergibt.
Der Doppelbackslash hat hierbei die folgende Funktion. Ein Backslash dient zur Maskierung von Sonderzeichen. \u ist jedoch kein gültiges Sonderzeichen, sondern lediglich die Kombination aus \ und u. Um den Backslash selbst darzustellen und ihm so seine Maskierungsfunktion zu nehmen, muss der Backslash selber maskiert werden. Nur so kann die Kombination aus Backslash und 'u' als 'Nichtsonderzeichen' dargestellt werden.

public class IntToUnicode {
    public static void main(String[] args) {
        String hex = Integer.toHexString(256); // 101
        hex = fillWithZero(hex, 4);
        System.out.println(hex);  // \u0101
    }

    static String fillWithZero(String s, int digits) {
        String str = "\\u";
        int strLen = s.length();
        while (digits > 0) {
            if (digits > strLen) {
                str += "0";
            } else {
                char c = s.charAt(strLen - digits);
                str += new Character(c).toString();
            }
            digits--;
        }
        return str;
    }
}

Wenn Ihnen javabeginners.de gefällt, freue ich mich über eine Spende an diese gemeinnützigen Organisationen.