Ayudanos contestando la siguiente encuesta acerca de Videojuegos!
Ir a la encuesta
>

No Strings Attached

Objetivo

Aprender a utilizar la clase String para mejorar nuestro manejo de cadenas.

Producto a Entregar

Un archivo comprimido con el programa generado en la actividad.

Forma de Trabajo

Equipos

Tiempo estimado

1 hora

Forma de Entrega

Por Blackboard

Recomendaciones

  • Sigue las instrucciones de la actividad y ejercita la lectura crítica.
  • Para poder entender bien los cómo utilizar archivos de texto es necesario comprender la clase String.

 

Instrucciones

Paso 1:

Descarga el esqueleto de la aplicación. Abre el proyecto en NetBeans, compílalo y córrelo para verificar que todo funcione correctametne. Deberá aparecer una pantalla similar a la siguiente:

Paso 2:

La empresa MaguSoft ha desarrollado un moderno scanner para obtener una cadena de cromosomas que consiste de los caracteres 'X' y 'Y'. Los más brillantes científicos han analizado miles de cadenas de caracteres, pero han llegado a la conclusión de que es un trabajo repetitivo y complicado que no es merecedor de sus intelectos. En vista de esto han decidido contratarte para desarrollar un sistema que analice una cadena de caracteres que representa la cadena de cromosomas y que cuentes el número de 'X' y el número de 'Y' que se encuentran en la cadena. Los científicos te informan que el sexo de un individuo puede ser determinado mediante esta cadena obteniendo el número de X y de Y y comparándolos mediante las siguientes dos reglas:

  • #Y >= #X: El indidivuo es del sexo masculino
  • #Y < #X: El individuo es del sexo femenino

Otro problema serio que enfrentan los científicos es que el scanner regresa mucha basura en las cadenas de caracteres por lo que necesitan una manera de limpiar las cadenas. Las cadenas de caracteres únicamente deben contener los caracteres 'X' y 'Y', todos los demás caracteres deben ser descartados.

Para poder resolver el primer problema vamos a crear tres métodos, uno que regrese el número de X que tiene la cadena, uno que regrese el número de Y que tiene la cadena y un último método que utilice estos dos para devolver un String con el sexo correspondiente. Para poder recorrer una cadena caracter por caracter utilizamos el método charAt(int index) de la clase String, que nos devuelve el caracter que se encuentra en la posición index del String (el índice empieza en 0).

Como el índice empieza en cero sucede una cosa curiosa, el String "hola" tiene un largo de 4, pero el índice de la letra h es 0 y de la letra a es 3, por lo que el ciclo que creamos siempre debe ir desde cero hasta el largo del String menos uno (o lo que es lo mismo, debe correr mientras sea menor que el largo). Tomando esto en cuenta vamos a crear el siguiente método:

Basándote en este método puedes crear el método getY(String chromosomes) que debe contar el número de 'Y' que tiene la cadena de caracteres recibida como parámetro. Con estos dos métodos también podrás crear el método getSex(String chromosomes) que debe utilizar los dos métodos creados anteriormente y devolver "Hombre" o "Mujer" de acuerdo al número de cromosomas X y cromosomas Y de la cadena. En el actionPerformed() del botón debes mandar llamar este último método y mostrar el resutlado en un message dialog.

El segundo problema es similar, pero tiene un detalle muy importante. Hay que recordar que un String es inmutable, por lo que no podemos utilizar un método que remueva los caracteres que sobran sino debemos ir revisando cada caracter y agregarlos a otro String en el que guardemos sólo el resultado con caracteres válidos.

Paso 3:

En el siguiente ejercicio vamos a obtener una cadena de caracteres y contar el número de veces que se repite un caracter. Como puedes imaginarte este método es muy similar a getX() o getY(), pero en este caso el método debe ser más general. Además es importante realizar algunas validaciones, como que el segundo JTextField no tenga más que un solo caracter.

Para poder obtener el número de caracteres que tiene una cadena puedes utilizar el método length(), con lo que podrías saber si contiene un solo caracter. Después puedes utilizar el método charAt() para obtener el caracter que está en la primera posición (recuerda que el índice empieza de 0) y crear un método genérico count(String s, char c) que cuente el número de veces que aparece el caracter pasado como parámetro en el String pasado como parámetro.

Paso 4:

Además de los métodos que hemos utilizado hasta el momento, Java cuenta con muchos métodos especiales de utilería, con los que podemos crear un String nuevo con ciertas características especiales basándonos en otro String. Un ejemplo de estos métodos es el método toUpperCase() que nos devuelve un String igual que el String que manda a llamar el método pero con todas las minúsculas cambiadas por sus equivalentes en mayúsculas.

Sabiendo esto podemos construir el método que cambia a mayúsculas:

Por último cuenta el número de vocales que tiene el String utilizando el método que creamos en el paso 3 y muestralo en un message dialog.

Comprime tu carpeta de trabajo y mándala por Blackboard.

Ayudanos a mejorar este laboratorio:

¿Cuál es tu opinión del laboratorio?

(1 - buena; 5 - mala).

1       2       3       4       5
¿Cómo se puede mejorar?
¿Encontraste un error? ¿Cuál?

Ayudanos contestando la siguiente encuesta acerca de Videojuegos!
Ir a la encuesta