ut2 clase string v2

28
Clase String Métodos CADENA DE CARACTERES

Upload: smiralles10

Post on 14-Apr-2015

117 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: UT2 Clase String V2

•Clase String

•Métodos

CADENA

DE

CARACTERES

Page 2: UT2 Clase String V2

1.LA CLASE STRING

Las cadenas de caracteres en Java se tratan como objetos de la clase String.

La clase String pertenece al paquete java.lang .

Proporciona todo tipo de operaciones con cadenas de caracteres.

Esta clase ofrece métodos de conversión a cadena de números , conversión a mayúsculas, minúsculas, reemplazamiento, concatenación, comparación, etc.

Sonia Miralles

Page 3: UT2 Clase String V2

2. MÉTODOS

Sonia Miralles

String (String dato)

int length ()

String concat (String s)

String toString()

int compareTo(String s)

boolean equals()

Boolean equalsIgnoreCase()

String trim()

String toLowerCase()

String toUpperCase()

String replace(char c1, char

c2)

String substring( int i, int j)

Boolean startsWith (String s)

Boolean startsWith(String s,

indice i)

Boolean endsWith (String s)

char charAt(int pos)

int indexOf (int c)

int indexOf(String s)

char[] toCharArray()

String valueOf(int dato)

Recuerda : Aparte de todos los siguientes métodos, el propio lenguaje java

ofrece el operador de concatenación +.

Page 4: UT2 Clase String V2

2. MÉTODOS

String (String dato) : Constructor de la clase String.

String cad1 = “Pepe”;

String cad2 = new String (“Lionel”);

String cad3 = new String (cad2);

Crean objetos de la clase String. El objeto cad3 está creado a

partir del objeto cad2 y contendrá los mismos datos “Lionel”.

int length() : Muestra la longitud de un objeto de la

clase String.

String cad1 = “CHELO”;

System.out.println (cad1.length());

El código anterior muestra la longitud del objeto cad1 (5)

Sonia Miralles

Page 5: UT2 Clase String V2

2. MÉTODOS

String concat (String s) : Devuelve un objeto fruto de

la concatenación/unión de un objeto String con otro.

String cad1 = “Andy”;

cad1 = cad1.concat(“Rosique”);

System.out.println(cad1);

Concatena las cadenas “Andy” y “Rosique”, y muestra por

pantalla el resultado de la concatenación (“AndyRosique”).

String toString() : Devuelve el propio String.

String c1= “Ana”;

String c2 = “López”;

System.out.println(c1.toString()+c2.toString());

Mostrará “ AnaLópez”

Sonia Miralles

Page 6: UT2 Clase String V2

2. MÉTODOS

int compareTo (String s) : Compara el objeto String

con el objeto String pasado como parámetro y

devuelve un número:

<0 : Si es menor el string desde el que se hace la llamada

al String pasado como parámetro.

=0 : Si es igual el string desde el que se hace la llamada

al String pasado como parámetro.

>0 : Si es mayor el string desde el que se hace la llamada

al String pasado como parámetro.

El método va comparando letra a letra ambos String y si

encuentra que una letra u otra es mayor o menor que otra

deja de comparar y devuelve un valor de los anteriores.

Sonia Miralles

Page 7: UT2 Clase String V2

2. MÉTODOS

int compareTo (String s) : Ejemplos

String cad1 = “EMMA”;

String cad2 = “MARÍA;

System.out.println(cad1.compareTo(“emma”));

System.out.println(cad1.compareTo(“EMMA”));

System.out.println(cad1.compareTo(“ENMA MORENO”));

System.out.println(cad2.compareTo(“MARIA AMPARO”);

System.out.println(cad2.compareTo(“MAREA”);

El código anterior mostrará por pantalla los siguientes datos: -32,0,-7, -7 y 4.

Este método distingue entre mayúsculas y minúsculas. Las mayúsculas están antes por orden alfabético que las minúsculas, por lo tanto ‘A’ es menor que ‘a’.

Sonia Miralles

Page 8: UT2 Clase String V2

2. MÉTODOS

boolean equals ( String s) : Compara el contenido de

dos objetos del tipo String.

String cad1 = “EMMA”;

String cad2 = new String (“EMMA”);

if (cad1.equals(cad2)){

System.out.println(“SON IGUALES”);}

else{

System.out.println(“SON DIFERENTES”);};

El código anterior mostrará por pantalla “ SON IGUALES”.

Sonia Miralles

Page 9: UT2 Clase String V2

2. MÉTODOS

boolean equalsIgnoreCase ( String s) : compara dos

String comprobrando si tienen los mismos caracteres y

en el mismo orden sin tener en cuenta las mayúsculas.

Si es así devuelve true y si no false.

String cad1 = “EMMA”;

String cad2 = new String (“Emma”);

if (cad1.equals(cad2)){

System.out.println(“SON IGUALES”);}

else{

System.out.println(“SON DIFERENTES”);};

El código anterior mostrará por pantalla “ SON IGUALES”.

Sonia Miralles

Page 10: UT2 Clase String V2

Diferencia entre método equals y el operador ==

Sonia Miralles

String cad1=“ENMA”;

String cad2=new String(“ENMA”);

if (cad1.equals(cad2)) {

System.out.println (“SON IGUALES”);}

else {

System.out.println (“SON DIFERENTES”);}

if (cad1= =cad2){

System.out.println (“ SON IGUALES”);}

else {

System.out.println (“SON DIFERENTES”);}

Mostrará por pantalla las siguientes cadenas : “ SON IGUALES” y “SON DIFERENTES” .

En el primer caso, son iguales porque contienen la misma secuencia de caracteres y el

segundo de los casos son diferentes porque son diferentes objetos.

Page 11: UT2 Clase String V2

Diferencia entre método equals y el operador ==

Sonia Miralles

Para que en el segundo caso muestre la cadena “SON IGUALES”

debería de cambiarse la línea de código:

String cad2= new String(“EMMA”);

Por la siguiente:

String cad2=cad1;

En este último caso es importante recalcar que cad2 y cad1

apuntan al mismo objeto.

Page 12: UT2 Clase String V2

2. MÉTODOS

String trim ( ) : Elimina los espacios en blanco que contenga el objeto String al principio y final del mismo. No elimina los espacios en blanco situados entre las palabras.

String cad1 = “ MAYKA ”;

String cad2 = cad1.trim();

System.out.println(cad2.toString());

Mostrará por pantalla la cadena “MAYKA” sin espacios.

String toLowerCase() : Convierte las letras mayúsculas del objeto String en minúsculas.

String cad1= “ANA ruiz”, cad2=cad1.toLowerCase();

System.out.println(“cad2.toString());

Mostrará “ ana ruiz”

Sonia Miralles

Page 13: UT2 Clase String V2

2. MÉTODOS

String toUpperCAse() : Convierte las letras

minúsculas del objeto String en mayúsculas. String cad1 = “JUAN serrano”, cad2=cad1.toUpperCase();

System.out.println(cad2.toString());

Mostrará por pantalla la cadena “JUAN SERRANO”.

String replace ( char car, char newcar) : Reemplaza

cada ocurrencia del carácter car por el carácter

newcar. String cad1= “JUAN SUAREZ”;

String cad2=cad1.replace(‘U’,’O’);

System.out.println(cad2.toString());

Mostrará “ JOAN SOAREZ”

Sonia Miralles

Page 14: UT2 Clase String V2

2. MÉTODOS

String substring(int i, int f) : Este método devuelve un

nuevo objeto String que será la subcadena que

comienza en el carácter i y termina en el carácter f

(el carácter f no se muestra). Si no se especifica el

segundo parámetro devolverá hasta el final de la

cadena.

String cad1 = “JUAN CARLOS MORENO”;

System.out.println(cad1.substring(5,11));

System.out.println(cad1.substring(12);

Mostrará por pantalla la cadena “CARLOS” y después

“MORENO”.

Sonia Miralles

Page 15: UT2 Clase String V2

2. MÉTODOS

boolean startsWith (String cad) : Este método

devuelve true si el objeto String comienza con la

cadena cad, en caso contrario devolverá false.

String cad1= “MAYKA MORENO”

System.out.println(cad1.startsWith(“JOSE”));

System.out.println(cad1.startsWith(“MAY”));

Mostrará por pantalla false y true.

Sonia Miralles

Page 16: UT2 Clase String V2

2. MÉTODOS

boolean startsWith ( String s int indice): devuelve

true si el String sobre el que se aplica comienza por

el del argumento a partir de un determinado índice

asociado al segundo argumento; false si esto no

ocurre. String cad1= “MAYKA MORENO”

System.out.println(cad1.startsWith(“MO”,6));

System.out.println(cad1.startsWith(“MAY”,1));

Mostrará por pantalla true y false ( la cadena empieza en 0).

Sonia Miralles

Page 17: UT2 Clase String V2

2. MÉTODOS

boolean endsWith (String cad) : Este método

devuelve true si el objeto String termina con la

cadena cad, en caso contrario devuelve false.

String cad1 = “MARIA AMPARO”;

System.out.println(cad1.endsWith(“paro”));

System.out.println(cad1.endsWith(“PARO”));

System.out.println(cad1.endsWith(“ARIA”));

Mostrará false, true y false. (Recuerda que Java distingue

entre ‘p’ y ‘P’ , al tener símbolo ASCII diferente el resultado

es false.

Sonia Miralles

Page 18: UT2 Clase String V2

2. MÉTODOS

char charArt ( int pos) : Devuelve el carácter del

objeto String que se especifica en el parámetro pos.

String cad1= “AMPARO HEREDIA”

System.out.println(cad1.charAt(0)+ “ ” + cad1.charAt(7));

Mostrará la cadena “A H”.

¡Ojo! : el índice debe estar comprendido entre 0 y length()-1 si

no Java lanza excepción.

Sonia Miralles

Page 19: UT2 Clase String V2

2. MÉTODOS

int indexOf(int c) o int indexOf(String cad) : Admite

dos tipos de parámetros. Encuentra la primera

ocurrencia de un carácter o una subcadena dentro

de un objeto del tipo String. En el caso de que no sea

encontrado el carácter o la subcadena, este método

devolverá el valor -1. String cad1 = “EMMA MORENO”;

System.out.println(cad1.indexOf(‘M’));

System.out.println(cad1.indexOf(‘J’”));

System.out.println(cad1.indexOf(“MO”));

System.out.println(cad1.indexOf(“MI”));

El código anterior mostrará : 1, -1, 5 y -1

Sonia Miralles

Page 20: UT2 Clase String V2

2. MÉTODOS

Char[] toCharArray () : Este método devuelve un

vector o array de caracteres a partir del propio objeto

String. String cad1 = “NARA VELASCO”;

char cad2[]=cad1.toCharArray();

El código anterior creará un array de caracteres cad2 que

contendrá la cadena “NARA VELASCO” contenida en el objeto

String cad1.

Sonia Miralles

Page 21: UT2 Clase String V2

2. MÉTODOS

String valueOf(int dato) : Convierte un número a un

objeto String. La clase String es capaz de convertir

los tipos primitivos int, long, float y double. int edad1=6;

String str=String.valueOf(edad1);

float edad2=6;

str=String.valueOf(edad2);

long edad3=6;

str=String.valueOf(edad3);

double edad4=6.5;

str=String.valueOf(edad4);

Sonia Miralles

Page 22: UT2 Clase String V2

CONVERTIR UN STRING EN UN NÚMERO

String snumero=“ 6 “;

int numero=Integer.parseInt(snumero.trim());

// int numero=Integer.parseInt(snumero);

Con el código anterior es posible convertir un objeto

String en un número entero. La tercera línea está

comentada porque lanzaría una excepción dado que no

se han limpiado los espacios a derecha e izquierda de la

cadena y contiene caracteres no numéricos.

Si el número es un decimal y no se quieren perder los

decimales se utilizaría el siguiente código: String snumero=“6.5”;

Double numero=double.valueOf(snumero).doubleValue();

Sonia Miralles

Page 23: UT2 Clase String V2

ACTIVIDADES (RELACIÓN 5)

1. Crear una clase pública de nombre EjercicioString1 que

contenga sólo al método main y partiendo de la String "En

mi próxima vida, creeré en la reencarnacion" declarada e

inicializada como variable primitiva, mostrar por consola

lo siguiente:

• Su longitud

• El carácter asociado al índice 7

• La subcadena "creeré"

• El índice que ocupa el carácter 'x'

• La String transformada en mayúsculas

• Por último, comprobar si el primer carácter de la String es 'E' y

mostrar por consola un mensaje que lo indique.

Sonia Miralles

Page 24: UT2 Clase String V2

ACTIVIDADES

Debe mostrar por pantalla: • Longitud de la cadena: 46

• Indice 7 asociado al caracter r

• La subcadena generada desde 20 incluido hasta 26

excluido es creeré.

• El índice del caracter x es 9

• La cadena en mayúsculas es: EN MI PROXIMA VIDA,

CREERE EN LA REENCARNACION

• El String comienza por E

Sonia Miralles

Page 25: UT2 Clase String V2

ACTIVIDADES

2. Crear un programa que muestre por consola el número de

veces que aparece la letra "a" en el siguiente String "Mañana

es sábado sabadete y voy a salir de cañas al bar de

enfrente“.

3. Basándote en el texto anterior, mostrar por consola el

número de veces que aparecen las letras a, o y e en la String

del ejercicio anterior. Además, si el número de veces que se

repite la a es superior a 10 debe aparecer el mensaje

"Exceso de a", si el número de veces que se repite la o es

superior a 4 debe mostrarse "Exceso de o" y si se repite más

de 5 veces la letra e debe mostrarse "Exceso de e"

Sonia Miralles

Page 26: UT2 Clase String V2

ACTIVIDADES

4. Implementa el código necesario para dados 4 nombres en 4

strings diferentes:

a) Comprobar si alguno de ellos empieza por la misma letra.

b) Comprobar si hay algun nombre compuesto.

c) Almacenar todos los nombres en una unica cadena llamada Listado.

d) Mostrar el contenido de listado carácter a carácter.

e) Extraer de listado el segundo de los strings ( debes conocer la

longitud de todos..)

Sonia Miralles

Page 27: UT2 Clase String V2

ACTIVIDADES

5. Verificar si una cadena de texto almacenada en el String nif,

es un NIF correcto o no. Si lo es, se mostrará por consola su

parte numérica; si no lo es se mostrará el mensaje "NIF no

valido". Se tendrá en cuenta lo siguiente:

Suponer que los NIFs tienen 8 dígitos y, a continuación,

una letra (no importa que sea mayúscula o minúscula).

PISTAS: dos condiciones que debe cumplir el NIF: tener 9

caracteres y que el último sea una letra. Comprobado

esto, verificar que el resto de caracteres son dígitos.

Sonia Miralles

Page 28: UT2 Clase String V2

ACTIVIDADES RECOMENDACIONES:

Usar el método length() de java.lang.String para conocer el

número de caracteres de una cadena de texto.

Usar el método estático isLetter(char c) de

java.lang.Character para comprobar que un carácter es una

letra.

Usar el método estático isDigit(char c) de java.lang.Character

para comprobar que un carácter es un dígito.

Usar el método substring(int inicio, int fin) de java.lang.String

para obtener la parte numérica del nif

Salida por pantalla:

Si NIF correcto: Si NIF incorrecto:

16156159B es un NIF valido 16156159 no es un NIF valido

Parte numérica del NIF= 16156159

Sonia Miralles