Vous êtes sur la page 1sur 5

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  
  !   Los  valores  se  expresan  entre  comillas  simples:  ‘a’,  ‘4’,  ‘#’  
 
Jesús  Montes  Sánchez  
jmontes@fi.upm.es  

String   Generación  
!   Una  serie  de  caracteres  tratados  como  si  fuesen  una  única   !   Hay  muchas  formas  
en[dad  
!   Por  ahora  sólo  veremos  éstas  
!   Un  string  puede  incluir  letras,  dígitos  y  caracteres  especiales  (+,
$,...)   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  


!   Tiene  varios:  
‘h’  ‘o’   ‘l’   ‘a’   !   de  instancia  
!   de  clase  
String miString1 = “hola”;!
!   Los  más  u[lizados  son  de  instancia  
String miString2 = “casa”;! ! charAt()  
! concat()  
miString1 = miString2! ! equals()  
! length()  
‘c’  ‘a’   ‘s’   ‘a’   ! replace()  
! substring()  
! toCharArray()  
! toLowerCase()  
! toUpperCase()  

1  
13/02/12  

char  charAt(int  index)   String  concat(String  s)  


!   Devuelve  el  carácter  indicado  por  el  índice   !   Devuelve  un  nuevo  string  adjuntando  el  valor  del  string  pasado  
como  parámetro  al  valor  del  string  actual.  
!   Al  igual  que  los  arrays  la  primera  posición  es  la  0  
 
 
String x = “hola”;!
String x = “avion”;!
System.out.println( x.concat(“ mundo!”) );!
System.out.println( x.charAt(2) );!

boolean  equals(String  s)   Comparando  Strings  


!   Devuelve  verdadero  si  el  valor  del  string  pasado  es  el  mismo   !   ¿Qué  pasaría  si  uso  ==  ?  
que  el  actual   ‘h’  ‘o’   ‘l’   ‘a’  
String uno = new String(“hola”);!
  String otro = new String(“hola”);!
!
String x = “hola”;! ¿System.out.println(uno==otro);?!

System.out.println( x.equals(“HOLA”) );!


false! ‘h’  ‘o’   ‘l’   ‘a’  

Comparando  Strings   Reserva  de  constantes  de  String  

!   ¿Y  con  esto?   !   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  
String uno = “hola”;! objeto  nuevo  
String otro = “hola”;! !   Reaprovecha  la  referencia  
!
¿System.out.println(uno==otro);?! !   ¿Por  qué?  
!   Eficiencia  
!   Reduce  el  consumo  de  memoria  
true!
!   Sólo  ocurre  con  las  constantes  de  Strings  

2  
13/02/12  

Reserva  de  constantes  de  String   int  length()  


!   ¿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   !   Devuelve  un  nuevo  String  con  los  caracteres  del  primero  que  
cambiando  todas  las  apariciones  del  carácter  old  por  las  de  new   van  desde  la  posición  que  comienza  en  begin  hasta  los  de  la  
posición  end  
String x = “oxoxox”;!
String x =“holamundo”;!
System.out.println( x.replace(‘o’,’O’) )!
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   !   Crea  un  array  de  caracteres  y  convierte  el  String  a  un  array  de  
minúsculas  o  en  mayúsculas   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);    
!   Muy  ineficiente  
//  La  salida  sería  y  =  ABxDEF  
!   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)   StringBuilder  delete(int  start,int  end)  

!   Se  cambia  el  caracter  de  la  posición  index  al  valor  almacenado   !   Elimina  los  caracteres  desde  la  posición  start  hasta  la  end-­‐1  
en  ch  
!   Devuelve  una  referencia  a  sí  mismo  
!   Al  igual  que  los  arrays  la  primera  posición  es  la  0  

 
StringBuilder x = new StringBuilder(“0123456789”);!
StringBuilder x = new StringBuilder(“avion”);!
System.out.println( x.delete(4,6) );!
x.setCharAt(1,’V’);!
// Devolvería 01236789!
System.out.println( x);!
 
// aVion!

StringBuilder  insert(int  offset,  String  s)   StringBuilder  reverse()  


!   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
sb.insert(3,”-”);!
StringBuilder(“01234”);!

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  

Vous aimerez peut-être aussi