JavaRush /Blog Java /Random-ES /Caracteres de escape en Java
Oleksandr Klymenko
Nivel 13
Харків

Caracteres de escape en Java

Publicado en el grupo Random-ES
¡Algo salió mal! Este artículo fue escrito como una tarea de prueba para un puesto en el equipo de JavaRush. Y fue escrito como una conferencia en toda regla. Por ello, te garantizo la calidad y cantidad de conocimientos útiles acumulados en este post. Además de información práctica y teórica, el artículo contiene datos interesantes que quizás ni siquiera conozcas. Caracteres de escape en Java - 1¡Hola Mundo! El escape de personajes es una solución técnica muy interesante y necesaria. La necesidad de escapar de los personajes ha jugado un papel importante en la historia de toda la industria de la programación. En este artículo, hablaremos sobre qué es el escape de caracteres, por qué es necesario escapar de ellos y cómo se implementa el escape de caracteres en Java. El artículo proporcionará ejemplos y datos interesantes relacionados con el tema del escape de personajes. ¡Disfruta leyendo! Toda la información en un sistema informático está representada en forma de texto, que en un nivel inferior está representado por bytes. Cuando escribimos una carta o un mensaje, escribimos un texto que será comprensible para una persona. Cuando escribimos código en el IDE, escribimos texto que el compilador puede analizar. En Java, el texto se puede representar como un tipo Stringcuyos datos están representados por caracteres de control: comillas emparejadas.
String str = "Hello World!";
Con el texto "¡Hola mundo!" No surgen problemas, pero ¿qué pasa si es necesario resaltar el mismo texto en un discurso directo? Usando las reglas gramaticales, queda claro que el texto "¡Hola mundo!", además de los caracteres de control del tipo String, debe colocarse entre comillas directas.
String str = "Java said, "Hello World!"";
Esta opción no funcionará porque el compilador simplemente no entenderá en qué punto termina la inicialización de la variable str. Para solucionar este y otros problemas similares, se inventó el escape de caracteres , es decir, cambiar los caracteres de control a las llamadas secuencias de control, también conocidas como secuencias de escape . A continuación se muestra una lista de secuencias de escape de Java válidas para usar en cadenas. \t — Carácter de tabulación (en java, el equivalente a cuatro espacios); \b— Un carácter de retorno en el texto un paso atrás o eliminar un carácter en una línea (retroceso); \n— Símbolo de nueva línea; \r— símbolo de retorno de carro; \f— Saltar la página al principio de la página siguiente; \'— Carácter de comilla simple; \"— Carácter de comillas dobles; \\— El carácter de barra invertida ( \). Ahora resaltemos el discurso directo en nuestra frase para que el compilador pueda analizar fácilmente lo que está escrito.
String str = "Java said, \"Hello World!\"";
Por lo tanto, el texto escrito es comprensible tanto para el compilador como para una persona si el contenido de la variable strse muestra en la pantalla. Descubrimos qué es el personaje que escapa y por qué es necesario. ¡E incluso escaparon del carácter de comillas dobles! Procedamos a analizar las secuencias de escape restantes. El carácter de tabulación en una línea se indica mediante una secuencia de escape \ty es análogo a cuatro espacios. Sin embargo, si la longitud de una cadena que consta de cuatro espacios es igual a la longitud de cuatro caracteres, entonces la longitud de una cadena con un carácter de tabulación será igual a uno. El carácter de tabulación se utiliza a menudo para construir tablas o elementos de interfaz pseudográficos , porque... Esto es más conveniente que escribir cuatro espacios. A continuación se muestra un ejemplo de una interfaz pseudográfica. Caracteres de escape en Java - 2Entre todas las secuencias de escape, el símbolo es \bquizás el más interesante, porque nos permite borrar el último carácter de la línea de salida, similar a si lo borramos presionando la tecla de retroceso .
System.out.print("2 + 2 = 5"); // La pantalla muestra 2 + 2 = 5
System.out.print("\b");// La pantalla muestra 2 + 2 =
System.out.print("4");// La pantalla muestra 2 + 2 = 4
Los símbolos \ntienen \runa historia común: veámoslos juntos. Es posible que haya encontrado el carácter de salto de línea \nantes. Por ejemplo, si un método println()genera información para que la siguiente salida sea en una nueva línea, entonces el método print()no realiza un salto de línea después de la salida, pero si agrega un carácter al final de la salida \n, entonces un salto de línea será realizado.
System.out.print("La próxima salida estará en una nueva línea\n");
System.out.println("La próxima salida estará en una nueva línea");
El carácter de retorno de carro \rnos permite devolver el cursor al principio de la línea de salida y mostrar nueva información como si no hubiera nada anteriormente en esa línea.
System.out.print("Texto a reescribir".);//La pantalla muestra "Texto a reescribir".
System.out.print('\r');//La pantalla esta vacia
System.out.print("Nuevo texto.");//La pantalla muestra "Nuevo texto".
De hecho, el retorno de carruaje se remonta a la época en que se imprimía texto en máquinas de escribir. Para realizar un avance de línea, era necesario mover el carro y bajar la palanca (parte del mecanismo de la máquina de escribir), después de lo cual se realizaría el avance de línea. Si no se bajaba la palanca, se podía seguir imprimiendo en la misma línea. Esto es lo que observamos cuando mostramos el símbolo \r. En este sentido, cuando el programador quería realizar un salto de línea, por costumbre ejecutaba una secuencia de caracteres al final de la salida \r\n. Cuando la era de la máquina de escribir llegó a su fin, hubo una generación de programadores que todavía usaban esta secuencia, aunque nunca habían trabajado con una máquina de escribir. A menudo olvidaban en qué orden debían completar una secuencia determinada, \r\no \n\r. Entonces les ayudó una palabra de prueba return, en la que era claramente visible el orden en el que se mostraban estos símbolos. Sin embargo, más tarde, al desarrollar software para las primeras versiones de Windows, después de MS-DOS, los programadores se vieron obligados a utilizar la secuencia \r\n. Ahora no tienes que preocuparte por esto y usa solo el carácter para romper una línea \n. Caracteres de escape en Java - 3Retrocedamos de nuevo en el tiempo, allá por los años 80. Fue entonces cuando \fse hizo popular el símbolo de avance de página al principio de la página siguiente. En ese momento, existían impresoras de líneas grandes, para trabajar con las cuales era necesario escribir un código de programa que detuviera qué y cómo debía imprimir la impresora. Y para indicar que el texto debe iniciarse desde una nueva página se utilizó el símbolo \f. Hoy en día, este símbolo ha perdido su relevancia hace mucho tiempo y es poco probable que alguna vez lo encuentre. Las dimensiones de la impresora lineal son bastante impresionantes. Caracteres de escape en Java - 4Con los símbolos \’y \\todo es exactamente igual que con el escape de una comilla doble, había un ejemplo al principio del artículo. Tendrá que escapar de una comilla simple, por ejemplo, para inicializar el tipo char con una comilla simple.
char ch = '\'';
Escape el carácter de barra invertida para indicar que el siguiente carácter no formará parte de la secuencia de escape.
System.out.println("\\n - secuencia de escape de salto de línea");
// Salida: \n - secuencia de escape de salto de línea
En la práctica, a menudo hay que evitar las barras invertidas cuando se trabaja con rutas:
System.out.println("It's Java string: \"C:\\Program Files\\Java\\jdk1.7.0\\bin\"");
// Salida: Es una cadena Java: "C:\Program Files\Java\jdk1.7.0\bin"
Enfaticé que estas secuencias de escape se usan en cadenas (literales de cadena), porque el resto se utiliza para describir expresiones regulares de clase Patterny no es relevante para el tema de este artículo. Aquí puede ver una lista de todas las secuencias de escape de la clase Pattern. Sin embargo, vale la pena señalar que las expresiones regulares en la forma en que existen ahora no se pueden imaginar sin el uso de secuencias de escape, no sólo en Java, sino también en otros lenguajes de programación populares, por ejemplo PHP. En Java, el escape de caracteres también se utiliza en el formato de cadenas. Por ejemplo, al especificar un formato de cadena para mostrar el símbolo de porcentaje, debe duplicar el símbolo de porcentaje - %%; de lo contrario, obtendremos un error y el IDE le pedirá que agregue el porcentaje.
System.out.printf("Porcentaje de grasa de la leche: %d%%", 10);
// Porcentaje de grasa de leche: 10%
Esto concluye el artículo. Espero que hayas aprendido mucho sobre cómo escapar de personajes y cómo ponerlo en práctica. El escape de caracteres es inherente a muchos lenguajes de programación. En Java, como en otros lenguajes tipo C, esta tecnología se implementa de manera casi idéntica. Por lo tanto, el conocimiento que obtenga de este artículo puede ser útil no solo en Java. ¡Gracias por tu atención y buena suerte con tus estudios!
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION