Introducción a la Programación VIII Strings

Anuncio
11/01/11 Repaso !   Objeto !   Estructura de control !   Clase !
!   Sentencia !   Referencia !   Palabra reservada !   Método !   Variable !   Ámbito de una variable !   Tipo !   Recursividad !   Cas;ng !   Herencia !   Operador !   Polimorfismo !   Expresión !   Clase abstracta Array Introducción a la Programación VIII Curso de Programación en Java Jesús Montes Sánchez jmontes@fi.upm.es Diciembre 2010 Carácter Strings !   Valores numéricos que se usan para representar caracteres (letras, números, símbolos) 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’, ‘#’ Tabla ASCII String !   Una serie de caracteres tratados como si fuesen una única en;dad !   Un string puede incluir letras, dígitos 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” 1 11/01/11 Generación Es un objeto !   Hay muchas formas ‘h’ ‘o’ ‘l’ ‘a’ !   Por ahora sólo veremos éstas String s = new String(“hola”); char[] arrayChars = {‘h’,’o’,’l’,’a’}; String miString1 = “hola”;!
String miString2 = “casa”;!
miString1 = miString2!
String s = new String(arrayChars); ‘c’ ‘a’ ‘s’ ‘a’ String s = “hola” + “adios”; Métodos !   Tiene varios: !   de instancia !   de clase !   Los más u;lizados son de instancia !
!
!
!
!
!
!
!
!
charAt() concat() equals() length() replace() substring() toCharArray() toLowerCase() toUpperCase() 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) boolean equals(String s) !   Devuelve un nuevo string adjuntando el valor del string pasado como parámetro al valor del string actual. !   Devuelve verdadero si el valor del string pasado es el mismo que el actual String x = “hola”;!
String x = “hola”;!
System.out.println( x.concat(“ mundo!”) );!
System.out.println( x.equals(“HOLA”) );!
2 11/01/11 Comparando Strings !   ¿Qué pasaría si uso == ? Comparando Strings !   ¿Y con esto? ‘h’ ‘o’ ‘l’ ‘a’ String uno = new String(“hola”);!
String otro = new String(“hola”);!
!
¿System.out.println(uno==otro);?!
false!
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 true!
Reserva de constantes de String !   ¿Por qué pasa esto? String uno = “hola”;!
String otro = “hola”;!
!
!   ¿Por qué? ‘h’ ‘o’ ‘l’ ‘a’ !   Eficiencia !   Reduce el consumo de memoria !   Sólo ocurre con las constantes de Strings int length() !   Devuelve el tamaño del String !   ¡Cuidado! en arrays era una variable y aquí es un método 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 carácter old por las de new String x = “oxoxox”;!
System.out.println( x.replace(‘o’,’O’) )!
La salida es: OxOxOx 3 11/01/11 String toLowerCase() String toUpperCase() String substring(int begin, int end) !   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 =“holamundo”;!
System.out.println( x.substring(0,3) );!
// hola!
!   Devuelve un nuevo String con todos los caracteres en minúsculas o en mayúsculas String x = ‘hola’;!
System.out.println( x.toUpperCase() );!
Imprimiría HOLA char[] toCharArray() !   Crea un array de caracteres y convierte el String a un array de chars String x = “hola”;!
char[] arrayDeChars = x.toCharArray();!
Encadenamiento de llamadas String x = "abc"; String y = x.concat("def").toUpperCase().replace('C','x'); System.out.println("y = " + y); // La salida sería y = ABxDEF System.out.println( arrayDeChars[2] );!
StringBuilder Creación !   Los Strings son inmutables !   Sólo esta forma !   ¿Y si vamos a hacer muchas operaciones de modificación? StringBuilder sb = new StringBuilder(“abc”); !   Vamos a estar creando y destruyendo muchos Strings !   Muy ineficiente !   Los objetos StringBuilder son similares a los String !   ges;onan un conjunto de caracteres StringBuilder sb = “abc”; // ERROR !   Pero permiten ser modificados sin que se cree y se destruya un objeto cada vez 4 11/01/11 Métodos importantes StringBuffer append(String s) ! append !   Adjunta el String s al final del StringBuffer actual ! charAt !   Devuelve una referencia a sí mismo ! setCharAt StringBuffer sb = new StringBuffer(“hola”); ! delete sb.append(“mundo”); ! insert System.out.println(sb); !   reverse ! toString char charAt(int index) !   Devuelve el carácter indicado por el índice !   Al igual que los arrays la primera posición es la 0 StringBuilder x = new StringBuilder(“avion”);!
System.out.println( x.charAt(2) );!
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 x = new StringBuilder(“avion”);!
x.setCharAt(1,’V’);!
System.out.println( x);!
// aVion!
StringBuilder delete(int start,int end) StringBuilder insert(int offset, String s) !   Elimina los caracteres desde la posición start hasta la end-­‐1 !   Inserta el String pasado en la posición especificada por offset !   Devuelve una referencia a sí mismo !   Devuelve una referencia a sí mismo StringBuilder sb = new StringBuilder(“01234”);!
StringBuilder x = new StringBuilder(“0123456789”);!
sb.insert(3,”-”);!
System.out.println( x.delete(4,6) );!
System.out.println(sb);!
// Devolvería 01236789!
// Devolvería 012-34!
5 11/01/11 StringBuilder reverse() String toString() !   Invierte los caracteres !   Devuelve un String con los caracteres del StringBuffer !   Devuelve una referencia a sí mismo StringBuilder sb = new StringBuilder(“test”);!
StringBuilder sb = new StringBuilder
(“01234”);!
String s = sb.toString();!
System.out.println( s);!
sb.reverse();!
System.out.println( sb);!
// Devolvería 43210 6 
Descargar