Está en la página 1de 5

13/02/12

Carcter
! Valores numricos que se usan para representar caracteres
(letras, nmeros, smbolos) usando la tabla Unicode

La clase String

! 16 bit en vez de los 7 u 8 bits que ofrece ASCII

! Tipo char

Curso de Programacin en Java




Jess Montes Snchez
jmontes@.upm.es

! Los valores se expresan entre comillas simples: a, 4, #

String

Generacin

! Una serie de caracteres tratados como si fuesen una nica


en[dad
! Un string puede incluir letras, dgitos y caracteres especiales (+,
$,...)

! Hay muchas formas


! Por ahora slo 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

Mtodos
h o l a

String miString1 = hola;!

! Tiene varios:
! de instancia
! de clase

! Los ms u[lizados son de instancia

String miString2 = casa;!


miString1 = miString2!

c a s a

!
!
!
!
!
!
!
!
!

charAt()
concat()
equals()
length()
replace()
substring()
toCharArray()
toLowerCase()
toUpperCase()

13/02/12

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;!

Comparando Strings
! Qu pasara 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?
! Eciencia

true!

! Reduce el consumo de memoria

! Slo ocurre con las constantes de Strings

13/02/12

int length()

Reserva de constantes de String


! Por qu pasa esto?

! Devuelve el tamao del String


! Cuidado! en arrays era una variable y aqu es un mtodo

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 carcter old por las de new

! 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 = 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


minsculas o en maysculas

! 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] );!

Imprimira
HOLA

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 modicacin?


! Vamos a estar creando y destruyendo muchos Strings

System.out.println("y = " + y);


// La salida sera y = ABxDEF

! 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

Mtodos importantes

! Slo 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 nal del StringBuer actual

! Devuelve el carcter indicado por el ndice

! Devuelve una referencia a s mismo

! Al igual que los arrays la primera posicin 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) );!

13/02/12

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 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(avion);!
x.setCharAt(1,V);!
System.out.println( x);!

StringBuilder x = new StringBuilder(0123456789);!


System.out.println( x.delete(4,6) );!
// Devolvera 01236789!

// aVion!

StringBuilder reverse()

StringBuilder insert(int oset, String s)


! Inserta el String pasado en la posicin especicada por oset

! 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();!

// Devolvera 012-34!

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);!

También podría gustarte