viernes, 7 de octubre de 2016

7-Trabajar con Cadenas (String). Clase String

En los anteriores tutoriales ya hemos utilizado cadenas y hemos comentado también cómo Java nos permite utilizar este tipo de dato como si de un dato primitivo se tratara, cuando realmente String es una clase. Pero todavía no es hora de ver que son las clases y objetos ni cómo declararlos, sólo es bueno que recordéis que String no es un tipo de dato primitivo pero que Java nos permite utilizarlo como si lo fuera. Lo que haremos en este tutorial es ver algunos métodos importantes que podemos utilizar a la hora de utilizar las cadenas.
Para poder utilizar los métodos de una variable de tipo String se hace poniendo el nombre de la variable de tipo String que tengamos declarada seguido de punto y el nombre del método que queramos utilizar.

Por ejemplo:

String saludo = "Hola";
saludo.length;//utilización del método length
Como he dicho antes, se verán algunos métodos más importantes, si queréis ver todos y cada uno de los métodos que contiene la clase String ir al siguiente enlace Documentación Java 8 y buscáis la clase String.

7.1-Concatenacion de String.

La concatenación la hemos estado viendo en casi todos los tutoriales que llevamos hasta ahora. La concatenación consiste en añadir una cadena a otra cadena. Por ejemplo, hemos estado utilizando la concatenación cuando hemos querido imprimir por pantalla:

int edad = 28;
System.out.println("La edad es: " + edad);
A través del operador '+' podemos concatenar cadenas, pero si edad es de tipo entero ¿Por qué lo concatenamos como si fuese una cadena? Esto se debe a que al utilizar el System.out.println(); automáticamente convierte cualquier tipo de dato a cadena.
A parte de concatenar cadenas con el uso de + podemos utilizar el método concat(). Al utilizar este método sí que es necesario que le pasemos una cadena como parámetro,  que no podrá ser de tipo entero.
Veamos un ejemplo para concatenar dos frases:

class TrabajarCadenas {
    public static void main(String[] args) {

        String frase1 = "En un lugar de la Mancha";
        String frase2 = " de cuyo nombre no quiero acordarme";
        //Saldrá por pantalla En un lugar de la Mancha
        System.out.println(frase1);

        

        //concatenamos la frase2 a la frase1 dentro del System.out.println

        //Saldrá por consola En un lugar de la Mancha de cuyo nombre

        //no quiero acordarme.

        System.out.println(frase1.concat(frase2));

    }

}

La variable frase1 no pasa a valer "En un lugar de la Mancha de cuyo nombre no quiero acordarme", si no que lo concatena para imprimirlo por consola. Hubiera valido también utilizar el signo '+':

System.out.println(frase1 + frase2);

7.2-Método length()

El método length se utiliza para saber el tamaño de una cadena. Este método devuelve un tipo de dato entero con el número de letras y espacios que contiene una determinada cadena.
Vale, ya se que todavía no hemos visto los métodos y no sabéis que puede ser eso de que este método devuelve un entero.... Los métodos pueden devolver un valor o no, en caso de que devuelva un valor este puede ser de tipo entero, String, booleano... o cualquier otro tipo de dato primitivo. Pero como no los hemos visto todavía, quedaros con la idea básica.
¿Cómo podemos saber qué devuelve un método? Podemos mirar la documentación de Java y buscar el método de una clase(En este caso de la clase String) o mientras escribimos el código en NetBeans, cuando utilizamos el punto y seleccionamos el método que queremos nos aparece lo siguiente:


Vemos que en la parte derecha aparece int, esto significa que el método devuelve un entero. En caso de que un método no devuelva nada se indica con void. Pero todo esto lo veremos más adelante.

Para utilizar este método se hace igual que he comentado anteriormente, se pone el nombre de la variable seguido de punto y el nombre del método. En este caso no hay que pasarle nada entre paréntesis(argumento). Veamos el siguiente ejemplo:

String saludo = "Hola";

System.out.println(saludo.length());//Imprimirá 4 que el número de letras que contiene.


Es importante saber que los espacios en blanco también los cuenta.
Podríamos guardar el tamaño de una cadena en una variable de tipo int, ya que este método devuelve un entero.

String saludo = "Hola";

int tam = saludo.length();//Almacena en la variable tam el valor del tamaño de la variable saludo

System.out.println(tam);//Imprime el valor de la variable tam, que es 4


7.3-Método de comparación equals()

Siguiendo con los métodos más importantes que podemos utilizar al utilizar cadenas vamos a ver ahora el método equals(). El método equals es un método que devuelve un valor booleano, es decir, devuelve true o false. Este método compara una cadena con la otra cadena, si son iguales devolverá true y si no son iguales devolverá false. Al devolver true o false podemos deducir que dónde más se utilizará este método es en condicionales o en bucles.
Se declara de la misma manera que los demás métodos, pasando como parámetro la otra cadena a comparar. Por ejemplo:

String saludo = "Hola";
String despedida = "Adiós";

System.out.println(saludo.equals(despedida));//mostrará false porque  saludo no es igual que despedida
Probad a poner por ejemplo en la variable despedida que valga "Hola" y ver cómo mostrará en este caso true. Hay que tener en cuenta que con este método cuando compara dos cadenas diferencia entre mayúsculas y minúsculas, por lo que si en la variable despedida le asignamos el valor "hola" (con la letra h en minúscula) el resultado nos daría false. Para que no tenga en cuenta las mayúsculas y las minúsculas debemos utilizar el método equalsIgnoreCase(). Veamos el ejemplo:

String saludo = "Hola";

String despedida = "hola";

System.out.println(saludo.equalsIgnoreCase(despedida));
//mostrará true porque ya no tiene en cuenta las mayúsculas ni minúsculas.


7.4-Obtención de subcadenas con el método substring()

Obtener subcadenas significa que dada una cadena al aplicar el método se cogerá la cadena que se encuentre entre un principio y un fin. Por ejemplo, podemos tener la cadena: día maravilloso y al aplicar el método substring() decirle que se quiere que sólo se coja la subcadena maravilloso.
Vamos a verlo explicado en un ejemplo mejor:

String saludo = "Tazas de Java";

String sub = saludo.substring(0, 3);//al utilizar este substring le indicamos que coja los caracteres 
//que se encuentran entre la posición 0 (Se empieza a contar desde 0. El carácter T es el 0) 
//hasta la posición 3 (esta posición no coge el carácter, es decir,  el carácter 3 sería 
//la segunda a de la palabra Taza y no se mostraría, sólo mostraría Taz). Las posiciones se separan por comas.

System.out.println(sub);

Ahora veamos cómo utilizar el método substring pero sólo indicándole que muestre desde una posición hasta el final. Para ello sólo es necesario poner entre paréntesis del método la posición en la que quiere que comience.
 
String sub2 = saludo.substring(2);

System.out.println(sub2);//imprimirá zas de Java


7.5-Cambio de minúsculas a mayúsculas con los métodos toUpperCase() y toLowerCase()

Como indica el título estos métodos convierten una cadena en mayúsculas o minúsculas. El método toUpperCase() convierte una variable en mayúsculas y toLowerCase() convierte la variable en minúsculas. Veámoslo en código:

String saludo = "Tazas de Java";

System.out.println(saludo.toUpperCase());//convierte saludo en mayúsculas

System.out.println(saludo.toLowerCase());//convierte saludo en minúsculas


7.6-Método valueOf()

En el siguiente tutorial veremos como hacer castings. Los castings en Java consisten en pasar un tipo de dato a otro.
El método valueOf() lo que hace es convertir un tipo de dato primitivo en un String.
Para utilizar este método se hace poniendo antes el nombre de la clase, que es String, seguido de punto y el nombre del método (valueOf()), esto es así porque el método valueOf() es un método estático y para utilizar un método estático se hace de esta manera, poniendo el nombre de la clase seguido de punto y nombre del método estático.
Los métodos estáticos los veremos más adelante, pero es bueno que vayáis viendo cómo se utilizan.
Como en la programación la teoría puede ser muy confusa vamos a ver este método en un ejemplo para que podáis entender su funcionamiento:

 int numero = 8;

 String conversion = String.valueOf(numero);//almacena el valor de número en la variable conversión

//y pasa el valor 8 de ser entero a String

 System.out.println(conversion);//Imprime variable conversion


Bueno, pues la teoría de este tutorial ha llegado a su fin, ahora toca repasar todo lo aprendido con unos ejercicios. Después de cada ejercicio se muestran las soluciones, así que primero leer el enunciado sin mirar la solución e intentar solucionarlos vosotros mismos, si miráis la solución antes de hacerlo vosotros mismos nunca llegaréis a aprender a programar, sólo si no se sabe dar con la solución, después de haberlo intentado mucho se podrá mirar la solución.

Ejercicio 1
Crear una variable de nombre frase de tipo String que contenga el texto: "Tutorial 7 de Tazas de Java" y luego sacar por pantalla el tamaño que tiene la variable frase.

Solución.



Ejercicio 2.
Crear dos variables de nombre frase1 y frase2 de tipo String, una con el texto "Bienvenidos" y la otra con el texto "bienvenidos" e imprimir por pantalla si son iguales o no. Después hacer que al comparar las cadenas no tenga en cuenta las mayúsculas ni las minúsculas y volver a imprimir por pantalla si esta vez los textos son iguales.

Solución



Ejercicio 3
Crear una variable de tipo String de nombre comienzo que contenga el texto "En un lugar de la Mancha de cuyo nombre no quiero acordarme" y luego obtener la subcadena para que imprima por pantalla "n lugar de la Ma"

Solución



Ejercicio 4
Con la variable de nombre comienzo del ejercicio 3, hacer que imprima por pantalla el texto en mayúsculas y después en minúsculas.

Solución



Ejercicio 5
Crea una variable de tipo entero de nombre num con valor 15, almacena en una variable de tipo String de nombre convertido la variable num, convirtiéndola en String y luego imprímela por pantalla.

Solución



Espero que os haya servido este tutorial y los ejercicios, en el tutorial 8 estudiaremos de cómo hacer castings en Java (pasar de un tipo de dato a otro)

No hay comentarios:

Publicar un comentario

Related Posts Plugin for WordPress, Blogger...