11 de septiembre de 2018

Mostrando más mensajes (print/println)

Como mostrar "Hola Mundo" es chulo, pero sólo un poco, vamos a ver cómo ampliar nuestro programa añadiendo más datos a la salida. Os recuerdo que la salida (output) es una de las partes más genéricas en las que dividíamos cualquier programa cuando aprendimos qué es programar.


Si cogemos el archivo Fin.java de la sesión anterior y añadimos este código:
System.out.println("Cruel");
System.out.print("Texto en otra línea");
Lo ejecutamos y vemos que nos queda:

Adios MundoCruel
Texto en otra línea

NOTA: Podemos usar atajos de Eclipse para no tener que escribir expresiones tan parecidas. Usar System.out.println(); es muy habitual y tiene el atajo syso.

Fijaros que hemos usado dos métodos distintos: print y prinln

La diferencia es que se añada el texto a una nueva línea o se permanezca en la misma que se escribió.

Cada línea que realiza una acción básica se llama sentencia, terminan en punto y coma (;) y ocupan una línea


También es importante ver cómo se organiza el código. Por ahora simplemente conocer estos puntos:
  1. Cada línea que realiza una acción básica se llama sentencia
  2. Todas las sentencias terminan en punto y coma (;)
  3. Al terminar una sentencia se sigue en una nueva línea
Todos los textos van "entrecomillados" y se conocen como String. String en inglés es traducido como cadena y representa que un texto es una cadena de caracteres.

Vemos que no hay espacio en "MundoCruel", ya que cuando termina de escribir uno, empieza a escribir otro. Si queremos un espacio en medio hay que añadirlo.

Los textos van "entrecomillados" y se conocen como String


Ahora bien, hay texto "especial" que no podemos escribir como un caracter (un salto de línea, una tabulación, unas comillas dobles, etc...) y para solucionarlo contamos con las secuencias de escape.

Las secuencias de escape empiezan con el caracter de escape "\" que indica que se esta usando una secuencia de escape. Las más habituales son:
  • \n = nueva línea
  • \\ = caracter "\" (backslash)
  • \" = comillas dobles dentro del String
  • \' = comillas simples dentro del String (en algunos lenguajes como JavaScript pueden delimitarse los Strings con cualquiera de las dos)
  • \r = retorno de carro
  • \t = tabulación
De esta forma podemos escribir en una sola sentencia todo el texto anterior e incluso adornarlo con unas comillas dobles que antes nos hubiera cortado la cadena:
System.out.print("Adios \"Mundo Cruel\"\nTexto en otra línea\n\tY otra linea más 'tabulada' usando \\t");
Que nos da la salida:

Adios "Mundo Cruel"
Texto en otra línea
    Y otra más tabulada usando \t

NOTA: Ya te habrás fijado en las tabulaciones que se usan según vamos entrando en bloques de código (nada en raíz, una en la declaración de "main" y dos en las sentencias dentro de éste). La forma de disponer el código para hacerlo más legible y uniforme se conoce como guía de estilo. Google ha publicado varias, una de ellas para Java, y se recomienda su uso en proyectos que vayamos a compartir con más programadores.

Práctica:

¿Os atrevéis a escribir el código necesario usando lo visto para imprimir por consola el listado con todas las secuencias de escape?

4 comentarios:

  1. System.out.print("Las secuencias de escape son:\n\\n\n\\\\\n\\\"\n\\\'\n\\r\n\\t"); Lo del atajo "syso" no me sale...

    ResponderEliminar
    Respuestas
    1. Tienes que tener activado el asistente de contenido como os aconsejo en el post de instalación de Eclipse (punto 2 de Opciones de Configuración personal). Prueba a ver si te funciona escribiendo syso y usando Ctrl + barra espaciadora. Si te funciona así es que no has hecho lo del asistente.

      Eliminar
    2. System.out.print("*Listado de clases de escape:\n\t\\n= nueva linea\n\t\\\\= caracter \"\\\" (blackslash)\n\t\\\"= Comillas dobles dentro del string\n\t\\'= Comillas simples dentro del string (en algunos lenguajes como JavaScript pueden delimitarse los String con cualquiera de los dos\n\t\\r= Retorno de carro\n\t\\t= Tabulación");

      Buenos días, he hecho la práctica y no me ha dado errores, aunque al haberlo hecho en una única sentencia me ha costado seguir el hilo de lo que estaba escribiendo. En este sentido, ¿sería mejor fraccionar en más sentencias el código cuando es tan largo para que sea más claro, ordenado y fácil de detectar los errores?

      Gracias, un saludo.

      Eliminar
    3. El ejemplo está para practicar y conocer las secuencias de escape. Luego no vas a usarlo, por consola normalmente lo que sale es un registro de log con información útil (para el desarrollador) pero no para que "quede bonito". Si es para un informe normalmente se hace una plantilla que recibe datos y normalmente produce un documento o página web agradable (para el usuario).

      Eliminar

Compárteme

Entradas populares