manipulación de caracteres e hileras de texto la clase string de java

34
Manipulación de caracteres e hileras de texto La clase String de Java

Upload: remedios-fontanilla

Post on 02-Apr-2015

181 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Manipulación de caracteres e hileras de texto La clase String de Java

Manipulación de caracteres e hileras de texto

La clase String de Java

Page 2: Manipulación de caracteres e hileras de texto La clase String de Java

Autor: Edgar Casasola M.2

¿Qué es una hilera de caracteres?

Las hileras de caracteres son objetos que se utilizan para almacenar cadenas de texto.

Se utilizan para manipular el texto con operaciones comunes tales como pasar a mayúscula, minúscula, editar, buscar la aparición de una letra o sub-hilera dentro de otra hilera.

Existen diferentes implementaciones para las hileras de caracteres dependiendo de que tan estáticas o dinámicas sean.

Page 3: Manipulación de caracteres e hileras de texto La clase String de Java

Autor: Edgar Casasola M.3

¿Cuáles tipos de hileras de caracteres existen en Java?

En Java existe la clase “String” para hileras de tamaño estático, y la clase “StringBuffer” para hileras de tamaño dinámico.

El “StringBuffer” permite ir almacenando texto en el mismo objeto y agregar, borrar o cambiar caracteres individuales.

Page 4: Manipulación de caracteres e hileras de texto La clase String de Java

Autor: Edgar Casasola M.4

¿Qué es un String en Java?

Una instancia de la clase String es una hilera constante o “inmutable” de caracteres.

Una vez creado un String, el mismo no puede ser editado o modificado.

A pesar de lo anterior, la clase String ofrece métodos eficientes para crear nuevos String a partir de modificaciones de objetos existentes.

Page 5: Manipulación de caracteres e hileras de texto La clase String de Java

Autor: Edgar Casasola M.5

¿Cómo se puede inicializar un String en Java?

Existen varias formas de declarar e inicializar un String. Asignando a una referencia de String un literal de String

directamente. Ejemplo: String s = “ESTE ES UN LITERAL DE STRING”;

O bien creando un String tomando con los caracteres correspondientes a los valores almacenados en otro String, vector de caracteres, o vector de bytes.String s = new String(arg);// arg puede ser una referencia a un: // String o “un literal como este”.// Vector de caracteres: char [].// Vector de bytes: byte [].// StringBuffer que contiene texto.

Page 6: Manipulación de caracteres e hileras de texto La clase String de Java

Autor: Edgar Casasola M.6

¿Qué sucede en la memoria al crear referencias e instancias de String?

Hay que tener cuidado que aunque dos String tengan el mismo contenido no necesariamente “son iguales”.

Dos referencias a String son iguales si se “refieren al mismo objeto”. No si el contenido de ambos es igual.

En el siguiente caso s2 y s3 son iguales entre si, pero s1 aunque tiene el mismo valor, no es igual a s2 ni s3.

Observe este caso:String s1 = “Casa”;

String s2 = “Casa”;

String s3 = s2;

Casas1

s2

s3 Casa

Page 7: Manipulación de caracteres e hileras de texto La clase String de Java

Autor: Edgar Casasola M.7

¿Cuáles son las acciones más comunes que se llevan a cabo con hileras de caracteres?

Entre las operaciones más comunes que se llevan a cabo con hileras de caracteres están las siguientes:

– Obtener la letra que se encuentra en una posición dada.– Conocer el tamaño de una hilera.– Extraer un fragmento de texto desde una hilera.– Comparar el contenido de dos hileras de caracteres.– Comparar el contenido de dos hileras de caracteres

ignorando entre mayúsculas y minúsculas.

Page 8: Manipulación de caracteres e hileras de texto La clase String de Java

Autor: Edgar Casasola M.8

¿Cuáles son las acciones más comunes que se llevan a cabo con hileras de caracteres? (continuación)

– Eliminar los blancos al inicio y al final de una hilera.

– Cambio de letras a mayúscula o minúscula.– Búsqueda de un String dentro de otro.– Reemplazo de una letra en la hilera original.– Unir o fragmentar una hilera en sus partes.– Determinar si una hilera inicia o termina con

algún valor específico.

Page 9: Manipulación de caracteres e hileras de texto La clase String de Java

Autor: Edgar Casasola M.9

¿Cómo puedo obtener la letra que se encuentra en una posición dada del String?

Para obtener una letra que se encuentra en una posición dada existe el método charAt(int) que recibe la posición dentro del String.

Aunque es posible obtener la letra de una posición dada, no se puede cambiar la letra dentro del mismo String ya que es estático.

Page 10: Manipulación de caracteres e hileras de texto La clase String de Java

Autor: Edgar Casasola M.10

¿Cómo se puede conocer el tamaño de un String en Java?

La clase String cuenta con un método que devuelve la cantidad de caracteres que tiene almacenada una hilera.

String.length() // devuelve el tamaño

Todos los caracteres incluyendo el carácter en blanco ‘ ‘ se toman en cuenta.

No lo confunda con la variable pública estática length con que cuentan los vectores.

Page 11: Manipulación de caracteres e hileras de texto La clase String de Java

Autor: Edgar Casasola M.11

¿Cómo se puede extraer un fragmento de texto desde una hilera en Java?

Si se desea obtener un String con la subhilera se puede utilizar el método substring(int desde,int hasta).

Este método devuelve un nuevo String formado con las letras que van desde la posición indicada en el primer parámetro hasta y sin incluir el caracter que se encuentra en la posición del segundo parámetro.

Si se desea un String a partir de una posición hasta el final se puede utilizar el método substring(int desde) con solo el parámetro de la posición inicial.

Page 12: Manipulación de caracteres e hileras de texto La clase String de Java

Autor: Edgar Casasola M.12

¿Cómo se puede comparar el contenido de dos hileras de caracteres en Java?

Para comparar el contenido de dos hileras de caracteres se puede utilizar el método compareTo(String otro). Este devuelve un número positivo si el primer String es lexicográficamente mayor que el segundo (va después del primero al ordenarlos alfabéticamente), devuelve un número negativo si es menor, o bien un cero si el contenido de ambos es igual. O bien se puede utilizar el método equals(String otro) que dice si el contenido de un String es igual que otro.

Recuerde que si compara con == lo que está comparando es si las referencias a String “apuntan” o “se refieren” al mismo objeto, no se está verificando si los dos String “contienen” algo similar.

Page 13: Manipulación de caracteres e hileras de texto La clase String de Java

Autor: Edgar Casasola M.13

¿Cómo se puede comparar el contenido de dos Strings ignorando mayúsculas en Java?

Para comparar el contenido de dos hileras de caracteres sin tomar en cuenta la diferencia entre mayúsculas y minúsculas, se utiliza el método equalsIgnoreCase(String otro).

Este compara el String al que se le aplica el método con el que se recibe como parámetro.

Page 14: Manipulación de caracteres e hileras de texto La clase String de Java

Autor: Edgar Casasola M.14

¿Cómo se pueden eliminar los blancos al inicio y al final de una hilera en Java?

El método trim permite producir un nuevo String luego de eliminar los blancos al inicio y al final de un String.

Algo como: “ texto “.trim()

produce: “texto”

Page 15: Manipulación de caracteres e hileras de texto La clase String de Java

Autor: Edgar Casasola M.15

¿Cómo saber si una hilera inicia o termina en una palabra específica en Java?

Los métodos:– starsWith(String inicio)– endsWith(String terminacion)

sirven para darse cuenta si una palabra inicia o termina con una sub-hilera específica.

Ambos devuelven un valor booleano.

Page 16: Manipulación de caracteres e hileras de texto La clase String de Java

Autor: Edgar Casasola M.16

¿Cómo crear un String con todos los caracteres en mayúscula o minúscula?

Para crear un nuevo String con todos los caracteres en mayúscula se utiliza el método toUpperCase().

Para convertir a minúscula se utiliza el método toLowerCase().

Page 17: Manipulación de caracteres e hileras de texto La clase String de Java

Autor: Edgar Casasola M.17

¿Cómo se produce un nuevo String luego de reemplazar una letra en Java?

El método replace(char letraVieja, char letraNueva) permite producir un nuevo String donde la letra vieja ha sido sustituida por la letra nueva en el String que es retornado.

Page 18: Manipulación de caracteres e hileras de texto La clase String de Java

Autor: Edgar Casasola M.18

¿Cómo crear un String como producto de la unión de dos o más String?

Debido a que los Strings no son editables, los métodos de modificación generan una nueva copia del String modificado.

El String original, sobre el cual se efectuó la operación, no es modificado.

El método concat(String otro) devuelve un nuevo String producto de unir el String al que se le aplica el método con el otro String que se recibe como parámetro.

Page 19: Manipulación de caracteres e hileras de texto La clase String de Java

Autor: Edgar Casasola M.19

¿Se puede convertir un String a un vector de caracteres?

Sí, en Java existen métodos para extraer los caracteres de un objeto tipo String.

El más común es el método toCharArray() que produce un arreglo nuevo con los caracteres contenidos en el String al que se le aplica.

Page 20: Manipulación de caracteres e hileras de texto La clase String de Java

EJEMPLO 1 - Manipulación de hileras de caracteres

Ir al ejemplo

Page 21: Manipulación de caracteres e hileras de texto La clase String de Java

EJERCICIO 1 - Manipulación de hileras de caracteres

Ir al ejercicio

Page 22: Manipulación de caracteres e hileras de texto La clase String de Java

Autor: Edgar Casasola M.22

¿Cómo se pueden crear hileras que crecen de forma dinámica?

El StringBuffer es un objeto que permite almacenar caracteres e ir ajustando su contenido de manera dinámica dentro del mismo objeto.

Es utilizado básicamente para editar texto.

Page 23: Manipulación de caracteres e hileras de texto La clase String de Java

Autor: Edgar Casasola M.23

¿Cuál es el uso más común de los StringBuffers?

El uso más común es la edición dinámica de texto. La ventaja es que permite que se le agreguen

fragmentos de texto al final de la hilera mediante el método como append(String agregado).

También pueden insertar fragmentos de texto en medio de una hilera con el método insert(int posición, String fragmento), en este caso se pueden insertar caracteres a partir del punto específico indicado por la posición. Los demás caracteres se desplazan hacia la derecha a partir del punto donde se lleva a cabo la inserción.

Page 24: Manipulación de caracteres e hileras de texto La clase String de Java

Autor: Edgar Casasola M.24

¿Cuál es el uso más común de los StringBuffers? (continuación)

Además es posible sustituir el carácter que se encuentra en una posición dada con el método setCharAt(int posición, char nuevo).

Recuerde que estos métodos no existen en los String porque los mismos no son modificables, los String generan copias mientras que el StringBuffer es modificado internamente sin generar copias.

Page 25: Manipulación de caracteres e hileras de texto La clase String de Java

Autor: Edgar Casasola M.25

¿Cómo funciona el StringBuffer?

Los métodos insert() y append() del StringBuffer permiten modificar la hilera de texto que contiene, al igual que el setCharAt(int,char)

Por ejemplo: StringBuffer expresion = new StringBuffer();

expresion.append(3); expresion.append(2); expresion.append('X'); expresion.insert(1," + "); expresion.insert(5," = "); expresion.setCharAt(8,'5'); System.out.println(expresion);

Produce como resultado el String:3+2=5

Page 26: Manipulación de caracteres e hileras de texto La clase String de Java

Autor: Edgar Casasola M.26

¿Cómo funciona el operador binario de concatenación +?

El operador binario de concatenación + es implementado por el compilador de java mediante el uso de StringBuffers.

Una expresión como la siguiente:String mensaje = “Peso = " + 179.25 + “ kilos”;

equivale a:String mensaje = new StringBuffer().append(“Peso = ").append(179.25).append(“ kilos") .toString();

Page 27: Manipulación de caracteres e hileras de texto La clase String de Java

EJEMPLO 2 - Manipulación de hileras dinámicas de caracteres

Ir al ejemplo

Page 28: Manipulación de caracteres e hileras de texto La clase String de Java

EJERCICIO 2 - Manipulación de hileras dinámicas de caracteres

Ir al ejercicio

Page 29: Manipulación de caracteres e hileras de texto La clase String de Java

Autor: Edgar Casasola M.29

¿Cómo separar los términos que componen una hilera de caracteres?

El método split(“\\s”) permite fragmentar una hilera y produce un vector de String con los fragmentos producidos luego de separar la tira.

La expresión predefinida \s indica que los delimitadores de cada término son: los blancos, tabuladores, cambios de líneas, caracteres de ajuste y de retorno.

Nota: El uso de la clase java.util.StringTokenizer() que sirve para el mismo fin ha sido declarado como obsoleto, y fue sustituido por el split() que sí pertenece a la clase String.

Page 30: Manipulación de caracteres e hileras de texto La clase String de Java

EJEMPLO 3 – Separación de los términos que componen una hilera

Ir al ejemplo

Page 31: Manipulación de caracteres e hileras de texto La clase String de Java

EJERCICIO 3 - Separación de los términos que componen una hilera

Ir al ejercicio

Page 32: Manipulación de caracteres e hileras de texto La clase String de Java

EJEMPLO 4 – Utilización de hileras para la resolución de problemas

Ir al ejemplo

Page 33: Manipulación de caracteres e hileras de texto La clase String de Java

EJERCICIO 4 – Utilización de hileras para la resolución de problemas

Ir al ejercicio

Page 34: Manipulación de caracteres e hileras de texto La clase String de Java

Autor: Edgar Casasola M.34

¿Dónde puedo obtener información de todos los métodos de la clase String?

La clase String es incluida automáticamente dentro del paquete java.lang.

Para más información se puede visitar la documentación en línea:

http://www.javasoft.com