La clase String

Transcripción

La clase String
13/02/12 Carácter !   Valores numéricos que se usan para representar caracteres (letras, números, símbolos) usando la tabla Unicode La clase String !   16 bit en vez de los 7 u 8 bits que ofrece ASCII !   Tipo char
Curso de Programación en Java Jesús Montes Sánchez jmontes@fi.upm.es !   Los valores se expresan entre comillas simples: ‘a’, ‘4’, ‘#’ String Generación !   Una serie de caracteres tratados como si fuesen una única en[dad !   Un string puede incluir letras, dígitos y caracteres especiales (+,
$,...) !   Hay muchas formas !   Por ahora sólo veremos éstas String s = new String(“hola”); !   Un string es un objeto de la clase String char[] arrayChars = {‘h’,’o’,’l’,’a’}; !   Su valor es inmutable String s = new String(arrayChars); !   Nunca va a cambiar String s = “hola” + “adios”; !   Las constantes de string se escriben entre comillas doble !   “Hola Mundo” Es un objeto Métodos ‘h’ ‘o’ ‘l’ ‘a’ String miString1 = “hola”;!
!   Tiene varios: !   de instancia !   de clase !   Los más u[lizados son de instancia String miString2 = “casa”;!
miString1 = miString2!
‘c’ ‘a’ ‘s’ ‘a’ !
!
!
!
!
!
!
!
!
charAt() concat() equals() length() replace() substring() toCharArray() toLowerCase() toUpperCase() 1 13/02/12 char charAt(int index) !   Devuelve el carácter indicado por el índice !   Al igual que los arrays la primera posición 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 parámetro 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”;!
Comparando Strings !   ¿Qué pasaría si uso == ? ‘h’ ‘o’ ‘l’ ‘a’ String uno = new String(“hola”);!
String otro = new String(“hola”);!
!
¿System.out.println(uno==otro);?!
System.out.println( x.equals(“HOLA”) );!
false!
Comparando Strings !   ¿Y con esto? String uno = “hola”;!
String otro = “hola”;!
!
¿System.out.println(uno==otro);?!
‘h’ ‘o’ ‘l’ ‘a’ 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é? !   Eficiencia true!
!   Reduce el consumo de memoria !   Sólo ocurre con las constantes de Strings 2 13/02/12 int length() Reserva de constantes de String !   ¿Por qué pasa esto? !   Devuelve el tamaño del String !   ¡Cuidado! en arrays era una variable y aquí es un método String uno = “hola”;!
String otro = “hola”;!
!
String x = “hola”;!
‘h’ ‘o’ ‘l’ ‘a’ System.out.println( x.length() );!
String replace(char old, char new) String substring(int begin, int end) !   Crea un nuevo String con el valor del String actual pero cambiando todas las apariciones del carácter old por las de new !   Devuelve un nuevo String con los caracteres del primero que van desde la posición que comienza en begin hasta los de la posición end String x = “oxoxox”;!
System.out.println( x.replace(‘o’,’O’) )!
String x =“holamundo”;!
System.out.println( x.substring(0,3) );!
La salida es: // hola!
OxOxOx String toLowerCase() String toUpperCase() char[] toCharArray() !   Devuelve un nuevo String con todos los caracteres en minúsculas o en mayúsculas !   Crea un array de caracteres y convierte el String a un array de chars String x = ‘hola’;!
String x = “hola”;!
System.out.println( x.toUpperCase() );!
char[] arrayDeChars = x.toCharArray();!
System.out.println( arrayDeChars[2] );!
Imprimiría HOLA 3 13/02/12 Encadenamiento de llamadas StringBuilder String x = "abc"; !   Los Strings son inmutables String y = x.concat("def").toUpperCase().replace('C','x'); !   ¿Y si vamos a hacer muchas operaciones de modificación? !   Vamos a estar creando y destruyendo muchos Strings System.out.println("y = " + y); // La salida sería y = ABxDEF !   Muy ineficiente !   Los objetos StringBuilder son similares a los String !   ges[onan un conjunto de caracteres !   Pero permiten ser modificados sin que se cree y se destruya un objeto cada vez Creación Métodos importantes !   Sólo esta forma ! append StringBuilder sb = new StringBuilder(“abc”); ! charAt ! setCharAt StringBuilder sb = “abc”; // ERROR ! delete ! insert !   reverse ! toString StringBuilder append(String s) char charAt(int index) !   Adjunta el String s al final del StringBuffer actual !   Devuelve el carácter indicado por el índice !   Devuelve una referencia a sí mismo !   Al igual que los arrays la primera posición es la 0 StringBuilder sb = new StringBuilder(“hola”); sb.append(“mundo”); StringBuilder x = new StringBuilder(“avion”);!
System.out.println(sb); System.out.println( x.charAt(2) );!
4 13/02/12 void setCharAt(int index,char ch) !   Se cambia el caracter de la posición index al valor almacenado en ch !   Al igual que los arrays la primera posición es la 0 StringBuilder delete(int start,int end) !   Elimina los caracteres desde la posición start hasta la end-­‐1 !   Devuelve una referencia a sí mismo StringBuilder x = new StringBuilder(“avion”);!
x.setCharAt(1,’V’);!
System.out.println( x);!
StringBuilder x = new StringBuilder(“0123456789”);!
System.out.println( x.delete(4,6) );!
// Devolvería 01236789!
// aVion!
StringBuilder reverse() StringBuilder insert(int offset, String s) !   Inserta el String pasado en la posición especificada por offset !   Invierte los caracteres !   Devuelve una referencia a sí mismo !   Devuelve una referencia a sí mismo StringBuilder sb = new StringBuilder(“01234”);!
StringBuilder sb = new
StringBuilder(“01234”);!
sb.insert(3,”-”);!
System.out.println(sb);!
sb.reverse();!
// Devolvería 012-34!
System.out.println( sb);!
// Devolvería 43210 String toString() !   Devuelve un String con los caracteres del StringBuffer StringBuilder sb = new StringBuilder(“test”);!
String s = sb.toString();!
System.out.println( s);!
5 

Documentos relacionados