2010-08-31 13 views
37

Me preguntaba si hay un escape hexadecimal (\ x) similar en Java como lo hay en C++. Por ejemplo: x Escape en Java?

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

No hay hexagonal (\ x) de escape en Java desde lo que parece hasta ahora. ¿Existe una alternativa que sea tan fácil de usar sin tener que juntar un montón de números hexadecimales?

Respuesta

47

Las cadenas en Java siempre están codificadas en UTF-16, por lo que utiliza un escape Unicode: \u0048. También se admiten caracteres Octal: \110

+0

Gracias por la rápida respuesta. ¡Funciona perfectamente !. – David

+0

@David: No se olvide de marcar la marca de 'respuesta elegida' :) – helios

3

Tenga en cuenta que octal escapes unicode se analizan bastante temprano.
Puede venir como una sorpresa cuando

String s = "text\u000d\u000a"; 

provoca un error de compilación
ya que debería haber utilizado "text\015\012" o "text\r\n"

+2

-1: se permiten escapes octales en literales de cadenas y no se analizan anticipadamente, como sugiere. El fragmento de código anterior funciona como se esperaba. Ver 3.10.6. Escape Sequences for Character and String Literals en http://docs.oracle.com/javase/specs/jls/se7/html/jls-3.html –

+0

@adrian - tienes razón, tengo escapes octales y unicode se escapa del error a su alrededor - Voy a arreglar la respuesta (si es posible). – tschodt

+0

Ok, y voy a eliminar mi voto negativo –