Estas leyendo la serie de tutoriales de Java. Lee más acerca de esta serie.
- Entrega Nº1: Introducción a la programación en Java
- Entrega Nº2: Instalación de Java y Eclipse
- Entrega Nº3: Nuestro primer programa en Java
- Entrega Nº4: PrintStream y manejo de cadenas
La clase PrintStream
Casi al final de la última entrega habíamos hablado de una clase PrintStream, seguramente se seguirán preguntando que es una clase, y nuevamente diré que más adelante lo veremos. Por el momento vamos a decir, aunque no sea así, pero para que tengan una idea, que una clase es como un archivito que contiene métodos (y atributos), que podemos utilizar.Uno de los métodos que nos brinda PrintStream es "println();" y por ahora debemos saber que para usar métodos de esta clase lo podemos hacer mediante "System.out." seguido del método que queramos.
El método print
El método print muestra por pantalla lo que le pasemos por parámetro sin salto de línea, esto quiere decir que si hacemos lo siguiente:System.out.print("Hola "); System.out.print("Mundo");Por consola veremos "Hola Mundo", en una sola línea. Si queremos usar el método print y mostrar mensajes en varias líneas tenemos que usar la secuencia de escape "\n", al igual que se hace en el lenguaje C.
System.out.print("Hola \n"); System.out.print("Mundo");Si vamos a la documentación de Oracle sobre la librería PrintStream, y buscamos el método print, podemos ver lo siguiente:
Vamos a interpretar esto. A la izquierda tenemos lo que devuelve el método print, que en todos los casos es void, por lo cual no devuelve ningún tipo de dato, y a la derecha tenemos el método en sí, con los parámetros que admite el mismo, y abajo una descripción de lo que hace.
¿Porqué esta escrita tantas veces la función?. Bueno esta escrita tantas veces porque admite distintos valores como parámetros de entrada, y esto tiene que ver con la sobrecarga de métodos, cosa que veremos en otra entrega. Lo que quiere decir esto es que a la función print admite como parámetros valores booleanos, caracteres, de coma flotante, enteros, de tipo Object, y cadenas.
Por lo cual podemos hacer
int entero = 9; System.out.print("Hola mundo esto es una cadena\n"); System.out.print(5); System.out.print("\nHola estoy combinando una cadena con un entero cuyo valor es " + entero);
Si ejecutamos el código veremos por consola lo siguiente:
Y de esta manera, podemos escribir cadenas, enteros, como también la combinación de estos tipos de datos.
Concatenación de cadenas
Ya que estamos de paso, vamos a explicar la concatenación de cadenas en Java. Como se puede apreciar en el ejemplo anterior se puede concatenar tipos de datos con el operador "+", para los que hayan programado en C o C++ quizás recuerden que para mostrar un entero luego de una cadena tenían que hacer algo como lo siguiente:int numero = 5; printf("El numero que quiero mostrar es: %d", numero);
Y si queriamos concatenar cadenas teníamos que recurrir a funciones como strcat
int main(int argc, char *argv[]) { char src[50], dest[50]; strcpy(src, "Esta es la cadena original"); strcpy(dest, "Esta es la cadena destino"); strcat(dest, src); printf("Cadena final : |%s|\n\n", dest); system("PAUSE"); return 0; }
Con el ejemplo anterior visualizamos por consola algo como esto:
En el caso de java se puede hacer con el operador "+" como se mostró anteriormente, veamos unos ejemplos:
String cadena1, cadena2; cadena1 = "Esta es mi primer cadena"; cadena2 = "Esta es mi segunda cadena"; int numero = 10; System.out.print(cadena1 + cadena2 + "\n"); String cadena3 = cadena1 + cadena2; System.out.println(cadena3); System.out.println("Hola esta es la cadena1" + cadena1 + " y esto es un nuúmero " + numero); String nombre = "Diego"; String apellido = "García"; String mensaje = "Hola "; mensaje += nombre + " " + apellido; System.out.println(mensaje);En este caso si ejecutamos el código veremos por consola lo siguiente:
Otra cosa que podrán observar es que las cadenas las definimos como tipo "String" y para asignarle algún valor simplemente lo hacemos con el operador "=", en el ejemplo anterior se detallaron varios casos para que quede claro.
El método println
Volviendo al tema anterior, hemos visto que el método "print" sirve para mostrar valores por consola siempre en la misma línea, excepto que usemos "\n". Otro método que nos ofrece la clase PrintStream es el método "println", el cual imprime valores en la consola y cada vez que se llama a este método produce un salto de línea. Si vamos a la documentación de Oracle al igual como hicimos para el método print podremos encontrar el método println y se verá algo así:El método printf
int numero = 5; double decimal = 2.4; String cadena = "cadena"; System.out.printf("Esto es una %s que contiene el número entero %d y el decimal %f",cadena,numero,decimal);Lo que mostrará por consola lo siguiente:
Otra manera para no escribir System.out
import java.io.PrintStream; public class main { private static PrintStream ps; public static void main(String[] args) { ps = new PrintStream(System.out); ps.println("Hola Mundo"); } }
Tip: Atajos en Eclipse
Muchas veces Java nos marcará error porque nos falta importar alguna librería, para visualizar esto, vamos a borrar la linea import java.io.PrintStream; y veremos como nos subraya en rojo la palabra PrintStream.Esto es porque para trabajar con esta clase debemos importarla, y la realidad es que no nos vamos a acordar todas las librerías que necesitemos importar, por lo tanto si no nos acordamos de que en el principio del programa hay que escribir import java.io.PrintStream; podemos recurrir a dos técnicas o métodos.
El primer método consiste en posicionar el puntero del mouse sobre la palabra PrintStream y veremos como nos sale una lista de sugerencias.