19 - la clase string
DESCRIPTION
Referencia a la clase String del lenguaje JavaTRANSCRIPT
-
13/02/12
1
La clase String Curso de Programacin en Java
Jess Montes Snchez [email protected]
Carcter
! Valores numricos que se usan para representar caracteres (letras, nmeros, smbolos) usando la tabla Unicode ! 16 bit en vez de los 7 u 8 bits que ofrece ASCII
! Tipo char ! Los valores se expresan entre comillas simples: a, 4, #
String
! Una serie de caracteres tratados como si fuesen una nica en[dad
! Un string puede incluir letras, dgitos y caracteres especiales (+,$,...)
! Un string es un objeto de la clase String
! Su valor es inmutable ! Nunca va a cambiar
! Las constantes de string se escriben entre comillas doble ! Hola Mundo
Generacin
! Hay muchas formas
! Por ahora slo veremos stas
String s = new String(hola);
char[] arrayChars = {h,o,l,a};
String s = new String(arrayChars);
String s = hola + adios;
Es un objeto
h o l a
c a s a
String miString1 = hola;!
String miString2 = casa;!
miString1 = miString2!
Mtodos
! Tiene varios: ! de instancia ! de clase
! Los ms u[lizados son de instancia ! charAt() ! concat() ! equals() ! length() ! replace() ! substring() ! toCharArray() ! toLowerCase() ! toUpperCase()
-
13/02/12
2
char charAt(int index)
! Devuelve el carcter indicado por el ndice
! Al igual que los arrays la primera posicin es la 0
String x = avion;!
System.out.println( x.charAt(2) );!
String concat(String s)
! Devuelve un nuevo string adjuntando el valor del string pasado como parmetro al valor del string actual.
String x = hola;!
System.out.println( x.concat( mundo!) );!
boolean equals(String s)
! Devuelve verdadero si el valor del string pasado es el mismo que el actual
String x = hola;!
System.out.println( x.equals(HOLA) );!
Comparando Strings
! Qu pasara si uso == ? h o l a
h o l a
String uno = new String(hola);!String otro = new String(hola);!!System.out.println(uno==otro);?!
false!
Comparando Strings
! Y con esto?
String uno = hola;!String otro = hola;!!System.out.println(uno==otro);?!
true!
Reserva de constantes de String
! Cada vez que se escribe una constante de String (Ej hola) Java comprueba si ya se ha escrito antes y, si ya existe, no crea un objeto nuevo ! Reaprovecha la referencia
! Por qu? ! Eciencia ! Reduce el consumo de memoria
! Slo ocurre con las constantes de Strings
-
13/02/12
3
Reserva de constantes de String
! Por qu pasa esto?
String uno = hola;!String otro = hola;!!
h o l a
int length()
! Devuelve el tamao del String
! Cuidado! en arrays era una variable y aqu es un mtodo
String x = hola;!
System.out.println( x.length() );!
String replace(char old, char new)
! Crea un nuevo String con el valor del String actual pero cambiando todas las apariciones del carcter old por las de new
String x = oxoxox;!
System.out.println( x.replace(o,O) )!
La salida es:
OxOxOx
String substring(int begin, int end)
! Devuelve un nuevo String con los caracteres del primero que van desde la posicin que comienza en begin hasta los de la posicin end
String x =holamundo;!
System.out.println( x.substring(0,3) );!
// hola!
String toLowerCase() String toUpperCase()
! Devuelve un nuevo String con todos los caracteres en minsculas o en maysculas
String x = hola;!
System.out.println( x.toUpperCase() );!
Imprimira
HOLA
char[] toCharArray()
! Crea un array de caracteres y convierte el String a un array de chars
String x = hola;!
char[] arrayDeChars = x.toCharArray();!
System.out.println( arrayDeChars[2] );!
-
13/02/12
4
Encadenamiento de llamadas
String x = "abc";
String y = x.concat("def").toUpperCase().replace('C','x');
System.out.println("y = " + y);
// La salida sera y = ABxDEF
StringBuilder
! Los Strings son inmutables
! Y si vamos a hacer muchas operaciones de modicacin? ! Vamos a estar creando y destruyendo muchos Strings
! Muy ineciente
! Los objetos StringBuilder son similares a los String ! ges[onan un conjunto de caracteres
! Pero permiten ser modicados sin que se cree y se destruya un objeto cada vez
Creacin
! Slo esta forma
StringBuilder sb = new StringBuilder(abc);
StringBuilder sb = abc; // ERROR
Mtodos importantes
! append
! charAt
! setCharAt
! delete
! insert
! reverse
! toString
StringBuilder append(String s)
! Adjunta el String s al nal del StringBuer actual
! Devuelve una referencia a s mismo
StringBuilder sb = new StringBuilder(hola);
sb.append(mundo);
System.out.println(sb);
char charAt(int index)
! Devuelve el carcter indicado por el ndice
! Al igual que los arrays la primera posicin es la 0
StringBuilder x = new StringBuilder(avion);!
System.out.println( x.charAt(2) );!
-
13/02/12
5
void setCharAt(int index,char ch)
! Se cambia el caracter de la posicin index al valor almacenado en ch
! Al igual que los arrays la primera posicin es la 0
StringBuilder x = new StringBuilder(avion);!
x.setCharAt(1,V);!
System.out.println( x);!
// aVion!
StringBuilder delete(int start,int end)
! Elimina los caracteres desde la posicin start hasta la end-1
! Devuelve una referencia a s mismo
StringBuilder x = new StringBuilder(0123456789);!
System.out.println( x.delete(4,6) );!
// Devolvera 01236789!
StringBuilder insert(int oset, String s)
! Inserta el String pasado en la posicin especicada por oset
! Devuelve una referencia a s mismo StringBuilder sb = new StringBuilder(01234);!
sb.insert(3,-);!
System.out.println(sb);!
// Devolvera 012-34!
StringBuilder reverse()
! Invierte los caracteres
! Devuelve una referencia a s mismo
StringBuilder sb = new StringBuilder(01234);!
sb.reverse();!
System.out.println( sb);!
// Devolvera 43210
String toString()
! Devuelve un String con los caracteres del StringBuer StringBuilder sb = new StringBuilder(test);!
String s = sb.toString();!
System.out.println( s);!