Está en la página 1de 16

PROGRAMACION 1

Captulo 3:
PROGRAMACIN ORIENTADA A
OBJETOS
Sesin 20

CADENAS
Objetivos:
Introducir al estudiante en el manejo de

cadenas en Java
Realizar ejercicios con cadenas en Java

CADENAS
Java no posee un tipo de dato primitivo para

manejar cadenas.
Es una secuencia inmutable (longitud fija) de
caracteres UNICODE(16 bits) tipo char.
La clase java.lang.String es la que se emplea para
representar cadena de caracteres.
Las cadenas en java son objetos de las clases
predefinida String o StringBuffer, que estn
incluidas en el paquete java.lang.*.
Siempre que aparecen conjuntos de caracteres
entre comillas dobles, el compilador de Java crea
automticamente un objeto String.

CADENAS
Si slo existieran cadenas de slo lectura (String),

durante una serie de manipulaciones sobre un objeto


String habra que crear un nuevo objeto para cada uno
de los resultados intermedios.
El compilador es ms eficiente y usa un objeto
StringBuffer para construir cadenas a partir de las
expresiones, creando el String final slo cuando es
necesario. Los objetos StringBuffer se pueden
modificar, de forma que no son necesarios nuevos
objetos para albergar los resultados intermedios.
Los caracteres de las cadenas tienen un ndice que
indica su posicin. El primer carcter de una cadena
tiene el ndice 0, el segundo el 1, el tercero el 2 y as
sucesivamente.

DECLARACIN DE CADENAS
String variable=Hola; //variable normal
String s, t=null; // ambas s =t =null:
Referencia Nula
String s=, t=new String(); // cadena vaca
String s=String.valueOf(3.1416),
t=obj.toString(); // Conversiones a cadena
OPERADORES PARA CONCATENAR
CADENAS
+ y +=

CONVERSION DE DATOS
UN METODO GENERICO PARA
ENCADENAR CUALQUIER
OBJETO
toString(); //Devuelve una copia del
objeto como un String.
PARA LEER UNA CADENA
String cadena=null;
Scanner entrada = new
Scanner(System.in);
Cadena=entrada.next();

CONVERSION DE DATOS
CONVERSIN DE CADENAS DE TEXTO EN
DATOS DEL TIPO ADECUADO
Cuando se lee desde teclado se obtiene un
objeto de tipo String, se puede usar:

METODOS ELEMENTALES
s.length(); // Regresa el tamao de la cadena
s.charAt(i); //Regresa el carcter i de la cadena s

DE COMPARACION
Trabaja con el cdigo UNICODE
s.equals(t); //Regresa verdadero si s y t son cadenas
exactamente iguales.
s.equalsIgnoreCase(t); // regresa verdadero si s y t
son iguales sin importar maysculas y minsculas
s.compareTo(t); //regresa 0 si son iguales, menor o
mayor a cero si s es menor/mayor a t.
s.compareToIgnoreCase(t); // lo mismo sin importar
maysculas y minsculas.

METODOS ADICIONALES
DE BSQUEDA
s.endsWidth(t); //Regresa verdadero si la cadena
termina con la cadena t
s.startsWidth(t); //Regresa verdadero si la cadena
inicia con la cadena t
s.indexOf(t); //Regresa posicin de carcter o
cadena t dentro de s o regresa -1 si no existe
s.lastIndexOf(t); //Regresa posicin de la ltima
aparicin de t dentro de s o regresa -1 si no existe
s.regionMatches(pos,t,tp,tam): Regresa cierto si
encuentra parte cadena t (tp,tam) en cadena t

METODOS ADICIONALES
DE TRASNFORMACION
Estas funciones crean una nueva cadena
s.toLowerCase(): Convierte a minsculas
s.toUpperCase(): Convierte a maysculas
s.concat(t): Concatena cadenas, idntico a s+t
s.trim(): Elimina espacios al inicio/final de la cadena
s.replace(c1,c2): Regresa cadena que resulte de
remplazar caracter c1 por c2 en s
s.substring(ini,fin): Regresa una instancia de la clase
String que tiene parte de la cadena s entre las
posiciones ini y fin
s.toCharArray(): Regresa un vector de caracteres.

EJEMPLO DE USO DE
CADENAS

public static void main( String[] args){


String cad = new String("Cadena Fija");
System.out.println("Ejemplo de String: '"+cad+"'");
System.out.println("Su longitud es: "+cad.length());
System.out.println("Su tercer caracter es:
"+cad.charAt(3));
System.out.print("Su subcadena del 3 al 6 es:");
System.out.println( cad.substring(2,6) );
char[] vectorcad = cad.toCharArray();
for (int i=0; i<cad.length();i++)
{
System.out.print(El elemento "+i+" : ");
System.out.println( vectorcad[i] );}

EJEMPLO DE USO DE
CADENAS

// Bsqueda en cadenas
String subcad=new String("ena");
System.out.print("La subcadena '"+subcad+"'");
System.out.print(" aparece en la posicion: ");
System.out.println( cad.indexOf(subcad) );
// Comparaciones
String cadcomp=new String("CADENA Fija");
System.out.print("La cadena '"+cadcomp+"'");
if ( cad.compareTo(cadcomp) == 0 )
System.out.println(" ES igual 'Sensitive'");

EJEMPLO DE USO DE
CADENAS

else
System.out.println(" NO es igual 'Sensitive'");
System.out.print("La cadena '"+cadcomp+"'");
if ( cad.equalsIgnoreCase(cadcomp) )
System.out.println(" ES igual 'Insensitive'");
else
System.out.println(" NO = 'Insensitive'");
// Derivacin
System.out.print("Cadena derivada en minusculas: ");
System.out.println( cad.toLowerCase() );
}

Funcin de validacin de la
cdula
Realizar una funcin para validar el

nmero de cdula.
En base a los nmeros de la cdula se
debe verificar cual debera ser el ltimo
dgito.
Ejemplo:
Cdula: 0702952441
Se debe multiplicar cada dgito de la
cadena desde la izquierda a la derecha
por 2121212121.
Si hay un valor que supera 9 se resta 9.

Funcin de validacin de la
cdula
0702952441
x 2121212121
0702954481

Luego se suma los 9 valores contados desde la

izquierda.
Sumar 070295448 |=39.

El resultado se divide para 10.

39%10=9
Si el residuo es 0 el ltimo nmero de la cedula

debe ser 0.
Caso contrario se debe restar 10 Residuo y el
resultado debe ser igual al ltimo dgito. En nuestro
ejemplo (10-9=1).

Tarea
Realizar dos opciones:
1.-Validar la cdula de una persona.
2.- Dada una frase separar en palabras y

contar el nmero de palabras.