2016-03-23 16 views
0

Grundsätzlich möchte ich Unicode-Symbole in meinen System.out.println Zeilen verwenden, aber diese Unicode-Zeichen müssten dynamisch generiert werden.Ist es möglich, Unicode-Zeichen in Java dynamisch zu generieren?

Nehmen wir zum Beispiel Symbole U+2074, U+2075 und U+2076, die Rückkehr bzw. x^4, x^5 und x^6. Um sie in Java zu drucken, würde ich \u2074, \u2075 und \u2076 verwenden, aber was ist, wenn ich sie basierend auf einem anderen Wert generieren möchte (d. H. \u207x, wobei x eine Variable ist)?

Wenn ich PHP verwenden würde, würde ich variable variables für das verwenden, was extrem praktisch wäre.

Ich ging sogar so weit, darüber nachzudenken, einen Hack wie mit u207 als String speichern, meine Berechnungen über den Wert von x machen und diesen Wert an die Zeichenfolge anhängt, aber dann gibt es Probleme, die \ Symbol in einem String-Einführung :

String unicodeBase = "u207"; 
// I do something to get a value for x 
String unicodeChar = "u207" + x; 
System.out.println("\unicodeChar"); 

Wenn ich dies tun, erhalte ich ein illegal unicode escape Fehler, der erwartet wird. Aber dann, wenn ich das \ Symbol entkommen, dann ist die Ausgabe eine Zeichenfolge, die nicht verarbeitet wird:

System.out.println("\\unicodeChar"); 

Dies gibt die Zeichenfolge unicodeChar.

So ist es möglich, Unicode-Zeichen in Java dynamisch zu generieren?

Antwort

1

Sie können einfach warf den Codepoint-Wert auf einen char:

(char)0x2070 + x 

Beachten Sie, dass Sie wahrscheinlich über Codepoint Werte in hex denken.

+0

Interessant, zumindest das ist kein Fehler out :) Wenn ich das tue, bekomme ich einfach eine hochgestellte '0' und nichts mehr. – user1301428

+0

Dann haben Sie den falschen Codepunkt. – SLaks

Verwandte Themen