2010-08-31 6 views
37

Ich frage mich, ob es in Java ein ähnliches hex (\ x) Escape gibt wie in C++. Zum Beispiel: x Escape in Java?

 
char helloworld[] = "\x48\x45\x4C\x4C\x4F\x20\x57\x47\x52\x4C\x44"; 
printf("%s", helloworld); 

Es gibt keine hex ist (\ x) Flucht in Java aus, was es so weit erscheint. Gibt es eine Alternative, die genauso einfach zu benutzen ist, ohne eine Reihe von Hex-Zahlen zusammenzufassen?

Antwort

47

Zeichenfolgen in Java werden immer in UTF-16 codiert, daher wird Unicode-Escape verwendet: \u0048. Oktalzeichen werden auch unterstützt: \110

+0

Danke für die schnelle Antwort verwendet haben sollte. Es funktioniert perfekt !. – David

+0

@David: Vergessen Sie nicht, die 'gewählte Antwort' zu markieren :) – helios

3

Beachten Sie, dass oktal Unicode Escapes sehr früh analysiert werden.
Es kann als eine Überraschung kommen, wenn

String s = "text\u000d\u000a"; 

einen Compiler-Fehler verursacht
weil Sie "text\015\012" oder "text\r\n"

+2

-1: Oktal-Escape-Zeichen sind in Zeichenfolgenliteralen zulässig und werden nicht früh analysiert, wie Sie vorschlagen. Das obige Code-Snippet funktioniert wie erwartet. Siehe 3.10.6. Escape Sequenzen für Zeichen und String Literale in http://docs.oracle.com/javase/specs/jls/se7/html/jls-3.html –

+0

@adrian - Sie sind richtig, ich habe Octal Escape und Unicode entkommt das falsche herum - ich werde die Antwort (wenn möglich) beheben. – tschodt

+0

Ok, und ich werde meinen Downvote entfernen –