ut2 clase string v2
TRANSCRIPT
•Clase String
•Métodos
CADENA
DE
CARACTERES
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
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 +.
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
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
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
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
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
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
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.
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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