Actualizado el 21 de Marzo del 2018 (Publicado el 5 de Marzo del 2018)
1.445 visualizaciones desde el 5 de Marzo del 2018
550,2 KB
43 paginas
Creado hace 8a (30/03/2016)
INACAP
Universidad Tecnológica de Chile
Sede Santiago Centro
Taller de Programación I
Curso Java J2SE
Tema 03:
Uso de Cadenas de Caracteres
y Strings en Java
Ing. Manuel López Ramos
Parte I
Strings y cadenas de caracteres
1.- Strings y cadenas de caracteres
● Los strings (o cadenas de caracteres) forman un tipo de dato no primitivo que permite
trabajar con palabras y frases de 0 ó más caracteres.
● Se utilizan para manipular mensajes e ingresos de datos complejos por parte del
usuario.
● En Java, forman un tipo de dato más complejo y que extiende el uso de los caracteres
individuales (tipo de datos primitivo char) -> los strings en Java son objetos
● Se representan como una sucesión de cero ó más caracteres, almacenados en una
estructura de datos lineal (como por ejemplo, un arreglo, una lista, etc.)
● En Java, los strings forman una clase, cuyo comportamiento está definido en el
paquete java.lang. El nombre de la clase String es java.lang.String. Por esta razón,
los strings en Java no forman parte de los tipos de datos primitivos del lenguaje.
Los strings tienen una propiedad fundamental: su largo o cantidad de carácteres.
Por ejemplo:
"Hola"
es un string con largo de carácteres igual a 4.
"La vaca pasta" es un string con largo de carácteres igual a 13.
""
es un string sin carácteres, con largo igual a cero.
1.- Strings y cadenas de caracteres
a) Declaración, definición y representación interna:
byte a = 34;
float b = 3.1415927F;
char c = '@';
String frase1;
frase1 = new String("Buenos días!");
Definición
de variable
Declaración
de variable
Declaración
de variable
(orientada a objetos)
+
creación de
string
1.- Strings y cadenas de caracteres
● La notación de cajas y flechas mostrada al declarar e inicializar variables se conoce
con el nombre de notación de apuntadores o notación de referencias.
● Indica cómo se almacenan los datos en la memoria RAM del computador.
byte a = 34;
float b = 3.1415927F;
char c = '@';
Para los tipos de datos primitivos,
los datos se almacenan directamente
dentro de la misma variable.
String frase1;
frase1 = new String("Buenos días!");
variable
referencia
almacenamiento
externo
Para otros tipos de datos (no primitivos),
los datos se almacenan fuera
de la variable y se vinculan a ella,
utilizando una referencia o apuntador.
1.- Strings y cadenas de caracteres
b) Declaración, definición y representación interna (otra forma):
String frase2;
frase2 = "Buenas tardes!";
Declaración
de variable
(simplificada)
inicialización/creación de
+
string
String frase3 = "Buenas noches!";
Definición
de variable
(simplificada)
1.- Strings y cadenas de caracteres
c) Strings vacíos y strings nulos:
String fraseVacia = "";
String fraseNula = null;
Un string vacío es aquel que
tiene cero carácteres.
El largo de este string es cero.
Un string nulo es aquel
cuyo valor de inicialización
es igual a null.
Equivale a una referencia no inicializada.
Este string no tiene largo.
1.- Strings y cadenas de caracteres
d) Copia y asignación de strings:
String frase1 = new String("La universidad");
String frase2;
Paso 1: al crear un string (con el operador new o con la forma simplificada),
se crea el objeto String "La universidad". También se crea la referencia
desde la variable frase1 al objeto String recién creado.
Obsérvese que la variable frase2 queda sin inicializar (string nulo).
1.- Strings y cadenas de caracteres
d) Copia y asignación de strings:
String frase1 = new String("La universidad");
String frase2;
frase2 = frase1;
Paso 2: al utilizar el operador = entre dos variables string, sólo se crea una copia
de la referencia de la variable frase1 dentro de la otra variable frase2.
Finalmente, sólo existe un objeto string "La universidad", compartido por ambas
referencias o variables.
1.- Strings y cadenas de caracteres
d) Copia y asignación de strings:
String frase1 = new String("La universidad");
String frase2;
frase2 = frase1;
frase2 = new String("La universidad");
Paso 3: si se quiere crear un nuevo string o un duplicado del anterior se debe crear
explícitamente, utilizando el operador new. Esto crea un nuevo objeto string
y una nueva referencia al nuevo string.
Parte II
Strings y caracteres
1.- Strings y cadenas de caracteres
● Los strings se pueden representar también como un arreglo (array, vector, lista, etc.) de
carácteres del tipo char, donde cada carácter tiene una posición fija.
● La primera posición es la cero y la última es igual al largo del string menos 1.
String frase1 = "La vaca pasta en el campo";
Primera posición
= 0
Posición de carácteres
Última posición
= largo - 1
(en este caso, 24)
Largo del string = 25
1.- Strings y cadenas de caracteres
● Los métodos sobre las variables que contienen strings se aplican con la notación:
variable.método(argumentos)
● Para obtener el largo del string, se utiliza el método length() sobre el mismo string o
sobre la variable que contiene dicho string.
● Para obtener un carácter individual, se puede aplicar el método charAt(posición) sobre
el string en cuestión.
String frase2 = "Fiestas Patrias";
int largoString = frase2.length();
char letra = frase2.charAt(10);
Carácter obtenido
en la posición 10
1.- Strings y cadenas de caracteres
● Hay muchas ventajas al trabajar los strings como arreglos de carácteres, entre los que
se cuentan:
a) posibilidad de recorrer los carácteres uno a uno
b) extracción individual de caracteres
c) análisis de texto y estructuras sintácticas de la frase
d) posibilidad de separar palabras y signos de puntuación
etc.
● Muchos problemas se resuelven haciendo un recorrido del string, posición a posición,
utilizando un ciclo iterativo (for, while, do-while), de la siguiente forma:
String frase = "Esta es una frase nueva";
for(int pos=0; pos < frase.length(); pos++)
{
char letra = frase.charAt(pos);
// Código que procesa el(los) carácter(es).
}
Parte III
Funciones importantes
3.- Funciones importantes
● A continuación, se resumen los métodos más importantes para el trabajo básico con
objetos del tipo String.
● En las siguientes diapositivas, la notación:
nombre_de_método( parámetros) -> valor_devuelto
indica el nombre del método a aplicar sobre una variable de tipo String, los parámetros
o datos de entrada para el método (y el tipo de datos para cada valor) y el tipo de valor
devuelto por el método, luego de la flecha. Por ejemplo, el método:
charAt(int posición) -> char
se llama charAt, requiere un número entero de entrada (entre paréntesis) y devuelve
un carácter del tipo char como resultado.
3.- Funciones importantes
a) charAt(int posición) -> char
estar entre cero y el largo del string menos uno.
Permite obtener un único carácter desde una posición del string. La posición debe
String frase = "Esta es una frase nueva";
char letra = frase.charAt(10);
// Finalmente, letra contiene el carácter 'a'
Posición 10 de carácter
3.- Funciones importantes
Compara dos strings de forma lexicográfica, es decir, indica si dos strings son
b) compareTo() -> int
iguales o no entre sí ó si uno de ellos está en el diccionario antes que el otro.
String palabra1 = "arbol";
String palabra2 = "barco";
String palabra3 = "casa";
palabra1.compareTo("barco") devuelve un valor < 0, porque
"arbol" está antes que "barco" en el diccionario.
palabra2.compareTo("barco") devuelve un valor == 0, porque
"barco" es igual a "barco".
palabra3.compareTo("barco") devuelve un valor > 0, porque
"casa" está después que "barco" en el diccionario.
3.- Funciones importantes
c) concat(String str2) -> String
Permite concatenar (o unir) dos strings entre sí, formando uno nuevo más largo.
String frase1 = "Cada día ";
String frase2 = "sucede algo bueno";
String fraseFinal = frase1.concat( frase2 );
// La variable fraseFinal tendrá la concatenación de
//las dos frases, es decir,
// "Cada día sucede algo bueno"
3.- Funciones importantes
d) contains(String stringABuscar) -> boolean
parámetro de entrada.
Devuelve true si el string a buscar está dentro del string principal, pasado como
String frase = "Esta es una frase nueva";
frase.contains("es") devuelve true porque la palabra
"es" se encuentra dentro de la frase.
frase.contains("rase") devuelve true porque la palabra
"rase" se encuentra dentro de la frase.
frase.contains("uno") devuelve false porque la palabra
"uno" no se encuentra dentro de la frase.
3.- Funciones importantes
e) endsWith(String stringABuscarAlFinal) -> boolean
parámetro de entrada.
Devuelve true si el string a buscar se ubica al final del string pasado como
String frase = "Esta es una frase nueva";
frase.endsWith("es") devuelve false porque la frase no
termina con el string "es".
frase.endsWith("eva") devuelve true porque la frase sí
termina con el string "eva".
3.- Funciones importantes
f) equals(String str2) -> boolean
caso contrario.
Devuelve true si el string 1 es igual, carácter a carácter, al string 2, o false, en
String frase = "Perro";
frase.equals("perro") devuelve false porque la frase es
igual al string "Perro".
frase.equals("Perro") devuelve true porque la frase sí
es igual al string "Perro", carácter a carácter.
3.- Funciones importantes
g) equalsIgnoreCase(String str2) -> boolean
caso contrario. No diferencia entre mayúsculas y minúsculas.
Devuelve true si el string 1 es igual, carácter a carácter, al string 2, o false, en
String frase = "Perro";
frase.equalsIgnoreCase("peRRo") devuelve true porque la
frase es igual al string "Perro", considerando que
mayúsculas y minúsculas son similares.
frase.equalsIgnoreCase("Perro") devuelve true porque la
frase sí es igual al string "Perro", carácter a
carácter.
3.- Funciones importantes
h) indexOf(String str2) -> int
Busca el stri
Comentarios de: Tema 03: Uso de Cadenas de Caracteres y Strings en Java (0)
No hay comentarios