u00f3 u00e9 java unicode

u00e9 - ¿Por qué no puedo usar / u000d y / u000a como CR y LF en Java?



in java (2)

Los escapes Unicode se procesan previamente antes de ejecutar el compilador. Por lo tanto, si coloca /u000A en un literal de cadena como este:

String someString = "foo/u000Abar";

Será compilado exactamente como si usted escribió:

String someString = "foo bar";

Adherirse a /r (retorno de carro; 0x0D ) y /n ( 0x0A línea; 0x0A )

Bonificación: siempre puedes divertirte con esto, especialmente dadas las limitaciones en la mayoría de los resaltadores de sintaxis. La próxima vez que tengas un segundo, intenta ejecutar este código:

public class FalseIsTrue { public static void main(String[] args) { if ( false == true ) { //these characters are magic: /u000a/u007d/u007b System.out.println("false is true!"); } } }

¿Por qué no puedo usar / u000d y / u000a como CR y LF en Java? Da un error cuando compilo el código:

illegal line end in character literal


Porque se encuentra dentro del rango de caracteres de control Unicode

Que es U+0000–U+001F y U+007F .

Los caracteres de control Unicode se usan para controlar la interpretación o visualización del texto, pero estos personajes no tienen representación visual o espacial.

Se pueden escapar usando / like descrito en la respuesta anterior por @Mark

DESDE RFC :

2.5. Instrumentos de cuerda

La representación de cadenas es similar a las convenciones utilizadas en la familia C de lenguajes de programación. Una cadena comienza y termina con comillas. Todos los caracteres Unicode pueden colocarse entre comillas, excepto los caracteres que se deben escapar: comillas, solidus reverso y los caracteres de control (U + 0000 a U + 001F).

Cualquier personaje puede ser escapado.