Poker - Aprendiendo JAVA (IV)
Poker

 Aprendiendo JAVA (IV) - Octubre 2007

Clic aquí para jugar!
El Mejor Poker en linea!

Aprendiendo JAVA (IV)

java5.jpg

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.

  1. import java.util.*;
  2. import java.util.regex.Pattern;
  3. public class FlujoFor {
  4. private String frase; //guardamos frase del constructor
  5. //constructor sin parametros
  6. FlujoFor()
  7. {
  8. Scanner sc = new Scanner(System.in);
  9. System.out.println("Introduce una frase");
  10. frase = sc.nextLine();
  11. }
  12. //constructor con parametros
  13. FlujoFor(String Texto)
  14. {
  15. frase = Texto;
  16. }
  17. //metodo get para leer el atributo frase
  18. public String getFrase() {
  19. return frase;
  20. }
  21. void ManipularTexto(String Parrafo)
  22. {
  23. /*eliminamos los espacios del principio y
  24. del final de la frase.*/
  25. String FraseLimpia=Parrafo.trim();
  26. /*creamos un delimitador para
  27. partir el texto*/
  28. Pattern deli=Pattern.compile(" ");
  29. //partimos la frase y la pasamos a un array
  30. String TrozoFrase [] = deli.split(FraseLimpia);
  31. //cuantas palabras tiene
  32. System.out.println("Tiene un total de " + TrozoFrase.length + " palabras");
  33. //mostramos las partes de la frase
  34. System.out.println("Se descone en: ");
  35. for(int contador=0; contador
  36. {
  37. System.out.println(TrozoFrase[contador]);
  38. }
  39. //recomponemos la frase
  40. System.out.println("Una vez compuesta queda: ");
  41. String UnionFrase="";
  42. for(int contador=0; contador
  43. {
  44. UnionFrase = UnionFrase + TrozoFrase[contador] + " ";
  45. }
  46. System.out.println(UnionFrase);
  47. }
  48. }

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í.

  1. public class TestFlujo {
  2. public static void main(String[] args) {
  3. FlujoFor MiFor= new FlujoFor();
  4. MiFor.ManipularTexto(MiFor.getFrase());
  5. }
  6. }

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.

primero.JPG

Si utilizásemos el constructor con parámetros nuestro código seria.

  1. public class TestFlujo {
  2. public static void main(String[] args) {
  3. FlujoFor MiFor= new FlujoFor("Me esta gustado este blog");
  4. MiFor.ManipularTexto(MiFor.getFrase());
  5. }
  6. }

Un posible resultado seria el que se recoge en la imagen.

segunda1.JPG

En el siguiente post continuaremos con los bloques repetitivos.

Enlaces interesantes



¿Qué quieres hacer?

Ultimos Articulos


 - Nuevo Foro de NoSoloPoker
- Bono del 100% en Poker Ocean
- 12 consejos para ganar en los torneos de poker freeroll
- Nueva tienda de poker y accesorios de casino
- Review de Party Poker
- 10 Consejos para saber cuando hacer All-in
- Pitbull Poker - Sit, Stay, Play!
- El poker en linea es mejor
- Reglas del Poker Omaha
- Pros y contras de los bonos de poker
- Héctor Fuentes comenta el EPT Baden
- Un par de manos de profesionales en el EPT Baden
- RS XXII: Blogueros en Poker Stars, el Profesor Matusow, TheV0id, Pamela dio
- WPT Barcelona 2007: 6 españoles avanzan en el Día 1A
- Llévate el Bankroll de Party Poker
- Mansion Poker se une a Ongame
- WSOP 1991: Brad Daugherty vs. Don Holt
- Torneos en Vivo de la segunda Copa Española Everest Poker
- Bet365 se muda a la red iPoker
- EPT Baden 2007: Julian Thew es el ganador
- Juegue poker y gane un anillo de diamantes
- Aprendiendo JAVA (IV)
- WPT Barcelona comienza mañana jueves
- EPT Baden 2007: Quién es quién en la Mesa Final
- Más de $9 millones en las FTOPS VI, y Heads Up con Phil Ivey en Full Tilt
- EPT Baden 2007: Daniel Mangas cae 24º
- Entrevistas: Noah Boeken
- PokerStars.com EPT Baden 2007: 40 buscan la Mesa Final
- Travis Rice gana el UltimateBet Aruba Poker Classic
- Anunciadas las fechas de las WSOP 2008
- PokerStars.com EPT Baden Día 2: Dani Mangas y Héctor Fuentes avanzan al día
- PokerStars.com EPT Baden 2007: 6 españoles avanzan en el Día 1
- El equilibrio psicofísico mejora nuestro juego, escribe Patrik Antonius
- Cayetano García gana el segundo evento de las Series Españolas de Póquer
- Nuevo lobby en el soft de Microgaming
- PokerStars.com EPT Baden 2007 Día 1: Buenas perspectivas
- Nuevos socios para el World Poker Tour
- Liga amateur en un crucero de póker
- PokerStars.com EPT Baden comienza domingo 7
- El reto de Phil Ivey: de $5.000 a $1.000.000
- Desconfía de los que desprecian los números
- RS XXI: TheV0id, Series Españolas, Gran Danés, PokerBowl...
- "Jhub3000" es el cuarto Supernova Elite de Poker Stars
- Pamela Anderson se casaría con su benefactor
- Presentadas las normas para promulgar la UIGEA
- Titan Poker
- External Value
- WSOP 1990: Mansour Matloubi vs. Hans Lund
- Dusk Till Dawn es el primer club de póquer legal del Reino Unido
- Al Aussie Millions con Betfair Poker

PokerRespuesta


 
 
Estadisticas y contadores web gratis
Estadisticas Gratis

Respuesta 2.0.1