PDF de programación - Manipulación de Cadenas Introducción a los conceptos de clase e objetos

Imágen de pdf Manipulación de Cadenas Introducción a los conceptos de clase e objetos

Manipulación de Cadenas Introducción a los conceptos de clase e objetosgráfica de visualizaciones

Publicado el 4 de Febrero del 2017
1.056 visualizaciones desde el 4 de Febrero del 2017
191,9 KB
21 paginas
Creado hace 16a (14/04/2008)
Manipulación de Cadenas

Introducción a los conceptos de clase e objetos

Nadjet Bouayad-Agha

Programación

2007-2008

Manipulación de Cadenas

• Acceder a los carácteres de una cadena
• Sustituir carácteres o (sub)cadenas por otro(a)s
• Utilizar expresiones regulares y hacer “pattern

matching”

• Más linguistico: acceder a las palabras de una frase

Manipulación de Cadenas

• Acceder a los carácteres de una cadena
• Sustituir carácteres o (sub)cadenas por otro(a)s
• Utilizar expresiones regulares y hacer “pattern

matching”

= clase String

• Más linguistico: acceder a las palabras de una frase
= clase StringTokenizer

Agenda de Hoy

• Métodos de la clase String
• Expresiones regulares
• Métodos de la clase String para hacer “pattern

matching”

• Clase StringTokenizer
• Un poco de teoría sobre clases y objetos

Algunos métodos de la clase String

String toUpperCase()
String toLowerCase()
int indexOf(int ch)
String substring(int beginIndex)
String replace(char oldChar,char newChar)
boolean endsWith(String suffix)
String[ ] split(String regex)
boolean matches(String regex)
String replaceFirst(String regex,String replacement)
String replaceAll(String regex,String replacement)



5

Expresiones regulares

• Patrones:
http://java.sun.com/j2se/1.5.0/docs/api/java/util/regex/Pattern.html#sum



6

Expresiones regulares

• Pattern matching en la clase String:

– boolean matches(String regex)
– El método comprueba que la cadena concuerda totalemente

con la expresión regular.

– Un ejemplo:
String cadena = “Hola”;
if (cadena.matches(“Hola”))
System.out.println(“MATCH1”);
if (cadena.matches(“Ho”))
System.out.println(“MATCH2”);
if (cadena.matches(“Ho.*”))
System.out.println(“MATCH3”);



7

Expresiones regulares

• Ejercicio - escribir expresiones regulares para

representar los siguientes conceptos:
– Código secreto de una tarjeta de crédito.
– Una palabra que empieza con mayúscula.
– Un número.
– Una fecha de nacimiento.



8

Expresiones regulares

• Como recuperar la subcadena concordante:

– String replaceFirst(String regex,String replacement)
– String replaceAll(String regex,String replacement)
– Ponemos la(s) expresión(es) que queremos recuperar dentro

de regex entre parentésis.

– En replacement, podemos recuperar estas expresiones

poniendo referencias atrás.



9

Expresiones regulares

• Como recuperar la subcadena concordante:

– Un ejemplo: cambiar una fecha del formato MM/DD/AA al

formato DD/MM/AA.

String fecha = “11/09/74”;
String regex = “([0-9][0-9])/([0-9][0-9])/([0-9][0-9])”;
if (fecha.matches(regex)) {

fecha = fecha.replaceFirst(regex,”$2/$1/$3”);

– $1 corresponde a la primera pareja de parentésis en regex,

$2 a la segunda, $3 a la tercera, etc.



10

}



La clase StringTokenizer

• Dentro del paquete (package) java.util. Para importar

este paquete scribir antes de la declaración de la
clase:
– import java.util.*;
– import java.util.StringTokenizer; // para importar solo la clase

que hay dentro de este paquete

• Permite dividir una cadena en tokens
• El delimitador por defecto es " \t\n\r\f"
• El objeto de tipo StringTokenizer permite recorrer una

vez la cadena por tokens.



11

La clase StringTokenizer

• Ejemplo:

import java.util.*;
public class MyClass {
public static void main(String[] args) {
StringTokenizer st = new StringTokenizer("this is a test");
while (st.hasMoreTokens())
}

System.out.println(st.nextToken());

}• Para dividir en tokens, con otros tipos de carácteres que los
carácteres por defecto, podemos utilizar el constructor de
objetos StringTokenizer con dos argumentos. Por ejemplo:

StringTokenizer st = new StringTokenizer("Hola, qué tal, bien?",”,”);



12

Variables de tipo básico vs de objeto

• Variable de tipo básico:

int i=10;

• Variable de objeto:
StringTokenizer st = new StringTokenizer(“hola, qué tal”);

i 10
st

(datos)

(métodos)



13

Variables de tipo básico vs de objeto

• La variable st es una referencia a un objeto de tipo

StringTokenizer, es decir un objeto de la clase
StringTokenizer.

• La variable i contiene el valor entero 10.
• La variable st no contiene los tokens, sino la dirección en
memoria del objeto responsable de la devolución de los tokens.
Una clase como StringTokenizer es como un molde que
define las propiedades y el comportamiento (métodos) que
constituyen cada objeto de esta clase.



• Un objeto es una instancia de esta clase.



14

Manipulación de variables de objeto

• La clase StringTokenizer tiene dos constructores:

– StringTokenizer st = new StringTokenizer(“hola, qué tal?);
– StringTokenizer st = new StringTokenizer(“hola, qué tal?”,”,”);.
• Estos constructores construyen objetos de tipo (de la clase)
• Para crear los objetos hemos utilizado con la instrucción new el

String.

nombre de la clase como un método.

• Toda clase tiene al menos un constructor.



15

Manipulación de variables de objeto

• Para inicializar una variable de objeto, utilizamos la

referencia nula:
StringTokenizer st = null;

El valor null es la inicialización por defecto:

• Si llamamos a métodos con un objeto cuyo valor es

String st;
null, entonces se produce un
NullPointerException.



16

Manipulación de variables de objeto

• Diferencia entre variables de objeto y variables de tipo básico:
StringTokenizer st1 = new StringTokenizer(“hola qué tal?)”;
StringTokenizer st2 = st1;

int i = 10;
int j = i;

st1
st2

Hemos
copiado el
contenido
de st1 dentro
de st2 = la
referencia



i 10

j 10

Hemos
copiado el
contenido
de i dentro de
j = el valor

(datos)
(métodos)



17

Manipulación de variables de objeto

• st1 y st1 de la transparencia previa refieren al

mismo objeto, tienen la misma referencia. En modo
depuración en Netbeans, podemos verlo en la ventana
de “Variables Locales”, así:

• Si ahora imprimimos st1.nextToken() y después
st2.nextToken(), se imprimirá primero hola y
después en la siguiente línea qué



18

Manipulación de variables de objeto

• Podemos comprobar la igualdad entre las dos variables de

objeto:
boolean igual = (st1 == st2);
El boolean contiene “true”, pues las dos variables contienen la misma referencia.

• Si por otro lado tenemos:

StringTokenizer st1 = new StringTokenizer(“hola qué tal?);
StringTokenizer st2 = new StringTokenizer(“hola qué tal?);
boolean igual = (st1 == st2);
El boolean contiene “false”, pues las variables contienen referencias distintas.

• Un constructor en efecto devuelve la referencia (o dirección en

memoria) del objeto.



19

Manipulación de variables de objeto

• Accedemos a los datos de un objeto mediante

métodos.

• Llamamos a los métodos de un objeto a partir de su

variable de objeto. Por ejemplo:
– st.nextToken();
– cadena.length();

• Si la variable de objeto no apunta a un objeto, al
llamar al método de este objeto, se produce un
nullPointerException.



20

La clase String

• String también es una clase. Pertenece al paquete

java.lang, que es accesible desde cualquier programa (no
hace falta importarlo).

• String es una clase un poco especial.

– Los objetos se pueden crear de dos formas

– Aparte de tener métodos, una variable de tipo String

equivalentes:
String cadena = “hola”;
String cadena = new String(“hola”);
se comporta más bien como una variable de tipo
básico:
String cadena1 = “hola”;
String cadena2 = cadena1;
Los literales String siempre se copian. cadena1 y
cadena2 no apuntan a la misma cadena.



21
  • Links de descarga
http://lwp-l.com/pdf2256

Comentarios de: Manipulación de Cadenas Introducción a los conceptos de clase e objetos (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad