Republica de Panamá Centro Regional Universitario de Veraguas Licenciatura de Ingeniería en Informática Programación III Laboratorio #1: manejo del objeto String Profesor: Diego Santimateo Integrante: Fernando Villarreal 6-711-1562 Semestre: II Año Lectivo: 2008
Introducción Los “String” son objetos de java con una sintaxis especialmente cómoda para representar cadenas de caracteres. Los caracteres se codifican usando Unicode. La clase String define muchos métodos interesantes para hacer programas: int length() longitud: número de caracteres boolean equals(String b) determina si la cadena contiene los mismos caracteres que la cadena “b”. boolean equalsIgnoreCase(String b) determina si la cadena contiene los mismo caracteres que la cadena “b”, independientemente de que estén en mayúsculas o minúsculas. int compareTo(String b) compara contra la cadena “b”, devolviendo · un valor negativo si la cadena es anterior a “b”; · cero (0) si la cadena es igual a “b”; · un valor positivo si la cadena es posterior a “b”. En las comparaciones se usa el código Unicode, lo que no siempre responde al orden lexicográfico (de diccionario). String trim() crea un nuevo objeto eliminado el espacio en blanco que pudiera haber al principio o al final. char charAt(int posicion) extrae en carácter en la posición indicada. char[] toCharArray() conviertr la cadena en un array de caracteres. String substring(int a, int z) extrae la sub-cadena entre las posiciones a y z. String substring(int desde) extrae la sub-cadena desde la posición indicada. boolean startsWith(String prefijo) dice si la cadena comienza con el prefijo indicado. boolean endsWith(String sufijo) dice si la cadena termina con el sufijo indicado. String[] split(String patron)fragmenta la cadena en varias subcadenas utilizando el patrón indicado como separador. y muchos otros métodos que son importantes en las aplicaciones de java. El presente laboratorio pretende enseñar la utilidad de los string en java y como trabajar con ellos.
1- Use su editor de texto para crear el programa fuente que aparece a continuación. public class StringManejo { public static void main(String[] args) { String string1 = "Ver"; int tam; if (string1.length() > 5) { System.out.println("La cadena tiene mas de 5 caracteres"); } else { System.out.println("La cadena:" + string1 +" tiene 5 o menos caracteres"); } }// fin del main } // fin de la clase StringManejo Experimente: 1. Compile y use la MVJ para probar el then y else del if. Modifique para que en el then se despliegue el valor de la cadena como ocurre en el else. Resp: public class StringManejo { public static void main(String[] args) { String string1 = "Ver"; int tam; if(string1.length()>5) {
System.out.println("La cadena "+string1+" tiene mas de 5 caracteres"); } else { System.out.println("La cadena "+string1+" tiene 5 o menos caracteres"); } } } 2- Cree otro objeto String con el nombre string2, asígnele un valor y verifique si las cadenas son iguales, despliegue un mensaje. ¿Qué método necesita? Resp: necesitamos el método equals, que nos permite comparar las dos cadenas. import java.io.*; import java.lang.*; public class StringManejo { public static void main(String[] args) { String string1="Ver"; String string2="Ver"; boolean b=string1.equals(string2); System.out.println("\nValor de retorno ==>"+b+""); } } 3- Use las referencias: a)http://java.sun.com/docs/books/tutorial/java/data/strings.html b)http://jungla.dit.upm.es/~pepe/libros/vademecum/html/Stringclasejaval angString.html c)http://www.sc.ehu.es/sbweb/fisica/cursoJava/fundamentos/clases1/string .htm d)http://www.cica.es/formacion/JavaTut/Cap3/string.html como apoyo para elaborar un programa que use cinco (5) métodos de la clase String, explique para que sirve cada método.
Resp: Programa que encuentra la cantidad de caracteres de una cadena. import java.io.*; import java.lang.*; public class StringManejo { public static void main(String args[]) { String cadena="fernando"; int a=cadena.length(); System.out.println("\nLa cadena tiene ==> "+a+" caracteres"); } } Programa que extrae de una cadena los caracteres desde la posición 2 hasta la 5, y los imprime en pantalla. import java.io.*; import java.lang.*; public class StringManejo { public static void main(String args[]) { String cadena="fernando"; int b=cadena.length(); if(b>5) { String a=cadena.substring(2,6); System.out.println("\nLa cadena extraida es ==> "+a); } else System.out.println("\nLos caracteres no pueden ser extraidos"); } }
Programa que extrae el carácter 4 de una cadena leída desde el teclado y lo imprime en pantalla. import java.io.*; import java.lang.*; public class StringManejo { public static void main(String args[]) { String texto="Fernando"; int b=texto.length(); if(b>=5) { char caracter=texto.charAt(4); System.out.println("\nEl caracter extraido es ==> "+caracter); } else System.out.println("\nEl caracter no existe"); } } Programa que compara dos cadenas leídas desde el teclado. Retorna true si las cadenas son iguales y false si son diferentes. import java.io.*; import java.lang.*; public class StringManejo { public static void main(String[] args) { String string1="Ver"; String string2="Ver"; boolean b=string1.equals(string2); System.out.println("\nValor de retorno ==>"+b+""); } }
Programa que transforma un número double a string. import java.io.*; import java.lang.*; public class StringManejo { public static void main(String args[]) { String cadena="Fernando"; double valor=3.1415927854; cadena=cadena.valueOf(valor); System.out.println("\nEl valor double transformado a cadena es ==> "+cadena+""); /*Se comprueba que el numero fue transformado a cadena*/ int b=cadena.length(); System.out.println("\nLa cadena tiene ==> "+b+" caracteres"); } } Programa que comprueba si una región de la cadena 1 es igual a la cadena 2. import java.io.*; import java.lang.*; public class StringManejo { public static void main(String args[]) { String cadena1="Fernando"; String cadena2="nando"; boolean b=cadena1.endsWith(cadena2); System.out.println("\nValor de retorno ==> "+b+""); } }
4Elabore un programa que tome una cadena de caracteres y la despliegue en el orden inverso de sus caracteres. ¿Qué métodos utilizó? ¿Con cuantos objetos trabajó? Resp: Utilice la clase StrinBuffer para crear la cadena con untamaño determinado y luego usando un método denominado reverse() nos da la cadena al reves. import java.io.*; import java.lang.*; public class StringManejo { public static void main(String args[]) { StringBuffer cadena=new StringBuffer("fernando"); cadena.reverse(); System.out.print(""+cadena+""); } } 5- Utilice un arreglo de objetos String (String[] MiArray = new String[5];) para almacenar cinco cadenas de caracteres. Construya un programa que despliegue cada elemento del arreglo en el orden inverso de sus caracteres. Resp: import java.io.*; import java.lang.*; public class StringManejo { public static void main(String args[]) { String cadena2="hola"; String[] arreglo={"fernando","norberto","felipe"}; for(int i=0;i<3;i=i+1) {
StringBuffer cadena=new StringBuffer(arreglo[i]); cadena.reverse(); cadena2=cadena2.valueOf(cadena); arreglo[i]=cadena2; } for(int i=0;i<3;i=i+1) { System.out.println("\nNombre "+(i+1)+" ==> "+arreglo[i]+""); } } } 6. ¿Qué diferencias existen entre: a)String[] MiArray = new String[5]; b)char[] MiArray = new char[5]; ¿que papel juega new en las declaraciones anteriores? Presente al facilitador un documento con sus observaciones y comentarios para cada caso. Publique en el grupo Scribd.com el informe (Informe lab3) de su laboratorio. Resp: En la parte a se crea un arreglo de objetos que son de tipo cadenas es decir, guarda cadenas de longitud n, mientras que en la parte b, se crea un arreglo de objetos que son de tipo carácter, es decir, solo guarda un carácter. El new es el que se encarga de crear los espacios de memoria para las variables de instancias.
Conclusión En este laboratorio aprendimos a manejar la clase String en java. Su importancia y su funcionamiento además de todos los métodos que se pueden usar para trabajar con ellos. Es importante resaltar que los string no son vectores como en C, pero cada carácter se asocia con una posición que inicia en cero.