Aprendiendo JAVA (IV)Publicado por Francisco el 2008-02-09 08:48:53
Es normal que nos encontremos en múltiples ocasiones con la necesidad de repetir diversas veces una misma sentencia. Por ejemplo: si buscamos un texto concreto dentro de otro texto. Tendremos que leer la primera palabra y si esta no es la que buscamos deberemos leer la segunda y así sucesivamente hasta localizar el texto que buscamos o hasta el final del fichero. Tal y como dijimos si conocemos el número de veces que deberemos repetir la operación o podemos instanciar una repetición por medio de un contador utilizaremos una sentencia de repetición FOR. Si el bloque debe ejecutarse por lo menos una vez pero no sabemos cuantas más utilizaremos una sentencia DO WHILE y en caso de desconocerse el número de repeticiones y si la condición no se cumple no debe cumplirse el bloque ni una sola vez utilizaremos WHILE. La mecánica de estos elementos de control de flujo se comprende de una forma más sencilla si lo vemos en ejecución. Planteémonos que debemos recoger un texto de un usuario, contar cuantas palabras tiene, descomponerlo en palabras y volverlo a montar. En primer lugar podríamos crear un nuevo proyecto en el Eclipse llamado tercero. Le podríamos añadir una clase a la que llamamos FlujoFor. El código de esa clase seria más o menos el siguiente.
En este código aparecen algunos conceptos de los que no hemos hablado como la importación de java.util.regex.Pattern de esta clase de java hablaremos mas adelante. La función trim nos devuelve la frase una vez eliminados los espacios en blanco del principio y del final de la frase, por eso se la asignamos a una variable, donde la recogemos. La clase Pattern y su método compile (que pertenecen a la clase java.util.regex.Pattern) sirven para crear una expresión regular que en este caso utilizaremos como limitador, podríamos crear cualquiera e incluso varios a la vez, por ejemplo: Pattern deli=Pattern.compile("[ , . ¡]"); La función splits troceara una frase en base a un delimitador que tomara como limite y devolverá cada trozo de la frase formando un array en este caso será String TrozoFrase []. La longitud del array será en este caso igual al número de palabras, trozos, que componen la frase inicial. Los dos for que contiene el código ejecutan el mismo trabajo. En cada iteración toman una de las palabras, es decir el valor que esta guardado en el índice del array que se indica. TrozoFrase[contador] tiene el mismo valor que TrozoFrase[1], cuando contador valga uno claro esta. En el primer for en cada iteración se muestra el valor por consola. En el segundo for cada iteración añade el valor de TrozoFrase[contador] a la variable UnionFrase y después mostramos el valor de esta variable. Para probar esta clase crearemos otra llamada TestFlujo y marcaremos la opcion public static void main(String[] args). En caso que utilicemos el constructor sin parámetros nuestra clase quedaría mas o menos así.
En este código recogemos el valor del atributo frase con el método MiFor.getFrase() que devuelve precisamente ese valor. Un posible resultado seria el que se recoge en la imagen. Si utilizásemos el constructor con parámetros nuestro código seria.
Un posible resultado seria el que se recoge en la imagen. En el siguiente post continuaremos con los bloques repetitivos. Enlaces interesantes¿Qué puedes hacer ahora?
¡Tenemos novedades todos los días! Suscríbete gratis a MilBits
Artículos relacionados con 'Aprendiendo JAVA (IV)'
Tú también puedes comentar este artículo
4 comentarios para 'Aprendiendo JAVA (IV)'in dicelas cabeceras de los bucles for están incompletos, los pongo enteros:
Francisco dice
Hemos comprobado que el formato automático del código cortaba partes de las líneas de mismo, creando un código incorrecto. Carlos Manuel Niebla dice Hola quisiera aprender a programar en Java. Comenta este artículo |
También puedes ver nuestros archivos.
CategoriasÚltimos comentarios
Temas populares
Programas imprescindibles |