Sei sulla pagina 1di 17

La Clase String

Definición. Métodos de la clase


Cadenas de caracteres
La clase String
 Ya hemos usado constantes de tipo String,
Ej: "Ingrese s para si y n para no"
 Un valor de tipo String es una secuencia de caracteres tratado como un
ítem único.
 Declaración:
String saludo;
saludo = "Hola!";
ó
String saludo = "Hola!";
ó
String saludo = new String("Hola!");
 Para imprimir:
System.out.println(saludo);

2
Cadenas de caracteres
Concatenación de Strings
 Dos Strings se concatenan usando el operador +
String saludo = "Hola"; Hola operador
String sentencia;
sentencia = saludo + " operador";
System.out.println(sentencia);

 Puede concatenar cualquier cantidad de Strings.


 Un string y un número entero también pueden
concatenarse de la misma manera:
String solucion;
solucion = "La temperatura es " + 72; La temperatura es 72
System.out.println (solucion);

3
Cadenas de caracteres
Operaciones sobre Strings

 Una clase es un tipo usado para producir


objetos.
 Un objeto es una entidad que almacena datos y
puede tomar acciones definidas por métodos.
 Un objeto de la clase String almacena datos
que consisten en una secuencia de caracteres.
 Las operaciones sobre objetos de la clase
String se ejecutan invocando los métodos
correspondientes
4
Cadenas de caracteres
Ejemplo: Obtener Longitud de un String

 El método length() retorna el número de caracteres


de un objeto String particular.
 El método length() retorna un int.
 Ej:
String cartel;
int longitudCartel;
17

cartel = "Bienvenido a Java";


longitudCartel = cartel.length();
System.out.println (longitudCartel);

5
Métodos de la clase String (I)

Método Descripción Ejemplo


Retorna la longitud del objeto String saludo=“Hola!”;
length()
String saludo.length() retorna 5

Retorna true si el contenido del String saludo=TecladoIn.readLine();


equals(otroString) objeto llamador y de otroString if (saludo.equals("Hola"))
son iguales, sino retorna false. System.out.println("Saludo informal");

Retorna true si el contenido del


objeto llamador y de otroString
equalsIgnoreCase son iguales, considerando una String s1="mary";
(otroString) letra en mayúscula y s1.equalsIgnoreCase("Mary") retorna true
minúscula como iguales, sino
retorna false.
Retorna un String con los
String s1="Hola Mary";
toLowerCase() mismos caracteres pero
s1.toLowerCase() retorna "hola mary"
convertidos en minúscula
Retorna un String con los
toUpperCase() mismos caracteres pero String s1 =“Hola Mary”;
convertidos en mayúscula s1.toUpperCase() retorna "HOLA MARY"

6
Métodos de la clase String (II)

Método Descripción Ejemplo


Retorna un String con los
mismos caracteres que el
String pausa = " Hmmm ";
trim() objeto llamador, pero remueve
pausa.trim() retorna "Hmmm"
los espacios por delante y
detrás

Retorna el carácter que en el


String saludo = "Hola!";
objeto llamador se encuentra
charAt(pos) saludo.charAt(0) retorna "H";
en la posición pos. La posición
saludo.charAt(3) retorna "a";
se cuenta 0, 1, 2, etc.

Retorna el sub-string del objeto


llamador desde la posición ini String prueba = “AbcdefG”;
substring(ini)
hasta el final. Se cuenta prueba.substring(2) retorna “cdefG”
0,1,etc

Retorna el sub-string del objeto


llamador desde la posición ini String prueba = “AbcdefG”;
substring(ini, fin)
hasta la posición fin, pero sin prueba.substring(2,5) retorna “cde”
incluirla.Se cuenta 0,1,etc

7
Métodos de la clase String (III)

Método Descripción Ejemplo

Retorna la posición de la primer


ocurrencia de otroString dentro
del String llamador. Las String saludo = "Hola Mary";
indexOf(otroString) posiciones se cuentan 0,1,2, saludo.indexOf("Mary") retorna 5
etc. Retorna -1 si otroString no saludo.indexOf("Sally") retorna -1
existe dentro del String
llamador.

Retorna la posición de la primer


ocurrencia de otroString dentro
del String llamador, a partir de String saludo = "Hola Mary";
indexOf(otroString,ini) la posición ini. Las posiciones saludo.indexOf("Mary",1) retorna 5
se cuentan 0,1,2, etc. Retorna saludo.indexOf("Mary",8) retorna -1
-1 si otroString no existe dentro
del String llamador.

8
Métodos de la clase String (IV)

Método Descripción Ejemplo

Retorna la posición de la última


ocurrencia de otroString dentro
del String llamador. Las
String s1 = "Mary, Mary, Mary no";
lastIndexOf(otroString) posiciones se cuentan 0,1,2,
s1.lastIndexOf(“Mary”) retorna 12
etc. Retorna -1 si otroString no
existe dentro del String
llamador.

Compara el string llamador con


otroString de acuerdo a su String entrada = "aventura";
orden lexicográfico (que es entrada.compareTo("zoo")
equivalente al alfabético si las retorna un valor negativo
letras están todas en entrada.compareTo("aventura")
compareTo(otroString) minúsculas o mayúsculas). Si el retorna 0
objeto llamador es menor que
otroString devuelve un valor entrada.compareTo("abajo")
negativo, si son iguales retorna un valor positivo
devuelve 0 y si no devuelve un
número positivo.

9
La clase String

 Recordar

Las posiciones dentro de un String comienzan en 0

 Ejemplos:
 En "Java es divertido" la 'J' está en la posición 0
 Otros ejemplos
String cartel = "Bienvenido a Java";
System.out.println(cartel.charAt(4)); v
nvenid
System.out.println(cartel.substring(3,9));

10
Comparar Strings
¿Que pasa si usamos ==?
 == no es apropiado para determinar si dos strings
tienen el mismo valor.
 (s1 == s2)es true si s1 y s2 están en la misma locación de
memoria, sino es false

s1 s1 “Hola”
“Hola”
s2 “Hola”
s2

Para comparar contenido de Strings hay que


usar el método equals. Ej: s1.equals(s2)

 Ocurre lo mismo con cualquier objeto


11
Igualdad para Ingrese dos lineas de texto:
Java no es Cafe
Strings Java no es CAFE
s1: Java no es Cafe
s2: Java no es CAFE
public class StringEqualityDemo
Las dos lineas NO son iguales.
{ Las dos lineas NO son iguales.
public static void main(String[] args) Pero las lineas son iguales ignorando el tipo de letra.
{
String s1, s2;

System.out.println("Ingrese dos lineas de texto:");


s1 = TecladoIn.readLine( );
s2 = TecladoIn.readLine( );

if (s1.equals(s2))
System.out.println("Las dos lineas son iguales.");
else
System.out.println("Las dos lineas NO son iguales.");

if (s2.equals(s1))
System.out.println("Las dos lineas son iguales.");
else
System.out.println("Las dos lineas NO son iguales.");

if (s1.equalsIgnoreCase(s2))
System.out.println("Pero las lineas son iguales ignorando el tipo de letra.");
else
System.out.println("Las lineas no son iguales aun ignorando el tipo de letra.");
} 12
}
Comparando Strings

Java usa orden lexicográfico

 Orden lexicográfico es similar al orden alfabético pero


basado en el orden de las caracteres en ASCII/Unicode.
 Los dígitos van antes que todas las letras.
 Las letras mayúsculas van antes que todas las minúsculas.
 El carácter blanco va antes que los dígitos y las letras

 El método compareTo se debe utilizar combinado con


el método toUpperCase o toLowerCase.
String s1 = "HoLa";
String s2 = "hola";
if (s1.toLowerCase().compareTo(s2.toLowerCase()) == 0)
System.out.println("Iguales!");

13
La clase String Procesamiento de texto es duro!
012345678901234567890123
La palabra "duro" comienza en el indice 26
El string cambiado es:
Procesamiento de texto es facil!

public class StringDemo {


public static void main(String[] args) {
String sentencia = "Procesamiento de texto es duro!";
int posicion;

posicion = sentencia.indexOf("duro");
System.out.println(sentencia);
System.out.println("012345678901234567890123");
System.out.println("La palabra \"duro\" comienza en el indice "+posicion);

sentencia = sentencia.substring(0, posicion) + "facil!";


System.out.println("El string cambiado es:");
System.out.println(sentencia);
}
}
14
La clase String
Caracteres Escape \

 ¿Cómo podríamos imprimir un cartel como el siguiente?


"Java" es un lenguaje
 El compilador necesita ser avisado cuando el símbolo
doble comillas (") no es señal de inicio o finalización de
un string, sino que debe imprimir las comillas
 Se antepone el símbolo \ al símbolo especial que desea
imprimir:
System.out.println(" \" Java\" es un lenguaje");

15
La clase String
Caracteres Escape \
\” Comillas dobles

\’ Comilla simple

\\ Barra inclinada hacia atrás

\n Bajar de línea. Ir al principio de la línea siguiente

\r Ir al principio de la línea actual


\t Tabulado: Agrega espacios blancos hasta la próxima
marca de tabulación

 Cada secuencia de escape es un único carácter aún


cuando está escrito con dos símbolos.
16
La clase String
Ejemplos con caracteres Escape
abc\def

new
line
'
+-----------------------+
| a | b | c |
System.out.println("abc\\def"); | 12 | | 1 |
System.out.println(); +-----------------------+

System.out.println("new\nline"); como estas -- hola


char singleQuote = ' \'';
System.out.println(singleQuote);

System.out.println ("+-----------------------+");
System.out.println ("|\ta\t|\tb\t|\tc\t|");
System.out.println ("|\t12\t|\t\t|\t1\t|");
System.out.println ("+-----------------------+");

System.out.print (" hola");


System.out.println ("\rcomo estas --");
17

Potrebbero piacerti anche