Publicado el 9 de Mayo del 2017
921 visualizaciones desde el 9 de Mayo del 2017
1,5 MB
5 paginas
Creado hace 13a (13/02/2012)
13/02/12
Carácter
! 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’,
‘#’
La
clase
String
Curso
de
Programación
en
Java
Jesús
Montes
Sánchez
jmontes@fi.upm.es
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
(+,
$,...)
! 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”
! Hay
muchas
formas
! Por
ahora
sólo
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
Métodos
String miString1 = “hola”;!
String miString2 = “casa”;!
miString1 = miString2!
‘h’
‘o’
‘l’
‘a’
‘c’
‘a’
‘s’
‘a’
! Tiene
varios:
! de
instancia
! de
clase
! Los
más
u[lizados
son
de
instancia
!
!
!
!
!
!
!
!
!
charAt()
concat()
equals()
length()
replace()
substring()
toCharArray()
toLowerCase()
toUpperCase()
1
char
charAt(int
index)
String
concat(String
s)
! 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) );!
! 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)
Comparando
Strings
! Devuelve
verdadero
si
el
valor
del
string
pasado
es
el
mismo
que
el
actual
String x = “hola”;!
System.out.println( x.equals(“HOLA”) );!
! ¿Qué
pasaría
si
uso
==
?
String uno = new String(“hola”);!
String otro = new String(“hola”);!
!
¿System.out.println(uno==otro);?!
false!
‘h’
‘o’
‘l’
‘a’
‘h’
‘o’
‘l’
‘a’
Comparando
Strings
Reserva
de
constantes
de
String
! ¿Y
con
esto?
String uno = “hola”;!
String otro = “hola”;!
!
¿System.out.println(uno==otro);?!
true!
! 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
! Reduce
el
consumo
de
memoria
! Sólo
ocurre
con
las
constantes
de
Strings
13/02/12
2
Reserva
de
constantes
de
String
int
length()
! ¿Por
qué
pasa
esto?
String uno = “hola”;!
String otro = “hola”;!
!
! 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() );!
‘h’
‘o’
‘l’
‘a’
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
String x = “oxoxox”;!
System.out.println( x.replace(‘o’,’O’) )!
La
salida
es:
OxOxOx
! 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!
String
toLowerCase()
String
toUpperCase()
! 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();!
System.out.println( arrayDeChars[2] );!
13/02/12
3
Encadenamiento
de
llamadas
StringBuilder
String
x
=
"abc";
String
y
=
x.concat("def").toUpperCase().replace('C','x');
System.out.println("y
=
"
+
y);
//
La
salida
sería
y
=
ABxDEF
! Los
Strings
son
inmutables
! ¿Y
si
vamos
a
hacer
muchas
operaciones
de
modificación?
! Vamos
a
estar
creando
y
destruyendo
muchos
Strings
! 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
! Sólo
esta
forma
StringBuilder
sb
=
new
StringBuilder(“abc”);
StringBuilder
sb
=
“abc”;
//
ERROR
Métodos
importantes
setCharAt
! append
!
charAt
!
! delete
!
insert
! reverse
!
toString
StringBuilder
append(String
s)
char
charAt(int
index)
! Adjunta
el
String
s
al
final
del
StringBuffer
actual
! Devuelve
una
referencia
a
sí
mismo
StringBuilder
sb
=
new
StringBuilder(“hola”);
sb.append(“mundo”);
System.out.println(sb);
! 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) );!
13/02/12
4
void
setCharAt(int
index,char
ch)
StringBuilder
delete(int
start,int
end)
! 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!
! Elimina
los
caracteres
desde
la
posición
start
hasta
la
end-‐1
! Devuelve
una
referencia
a
sí
mismo
StringBuilder x = new StringBuilder(“0123456789”);!
System.out.println( x.delete(4,6) );!
// Devolvería 01236789!
StringBuilder
insert(int
offset,
String
s)
StringBuilder
reverse()
! Inserta
el
String
pasado
en
la
posición
especificada
por
offset
! Devuelve
una
referencia
a
sí
mismo
StringBuilder sb = new StringBuilder(“01234”);!
sb.insert(3,”-”);!
System.out.println(sb);!
// Devolvería 012-34!
! Invierte
los
caracteres
! Devuelve
una
referencia
a
sí
mismo
StringBuilder sb = new
StringBuilder(“01234”);!
sb.reverse();!
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);!
13/02/12
5
Comentarios de: Curso de Programación en Java - La clase String (0)
No hay comentarios