Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Lorenzo31 en 24 de Marzo 2015, 16:01

Título: CU00661B Pensar en objetos. Una entrada de teclado o consola en Java como objeto
Publicado por: Lorenzo31 en 24 de Marzo 2015, 16:01
Buenas, aunque no hay ejercicios a realizar, queria indicar que en la parte de codigo del método getPrimeraPalabra() de la clase EntradaDeTeclado.

dentro del if en return entradaTeclado.substring(0, i+1); le sobra el +1 a la variable i, pues en ese caso devuelve la palabra + el espacio que acaba de encontrar que coincide.
Ejemplo: la palabra es "Hola " en lugar de "Hola".

Código: [Seleccionar]
public String getPrimeraPalabra ()  { 

        for (int i=0; i < entradaTeclado.length() - 1; i++) {

            if (entradaTeclado.substring (i, i+1).equals(" ") ) {     //IMPORTANTÍSIMO: COMPARAMOS CON EQUALS

                return entradaTeclado.substring(0, i+1);         }

        }

        return entradaTeclado;  //Caso de que no se detecte ningún espacio devolvemos lo que haya

    } //Cierre del método getPrimeraPalabra


Título: Re:CU00661B Pensar en objetos. Una entrada de teclado o consola en Java como objeto
Publicado por: toni_apr en 24 de Marzo 2015, 23:40
Hola Lorenzo

Si, tienes razón. El código devuelve la primera palabra más es espacio que ha servido para detectarla.

Pero tampoco lo damos por incorrecto. Una palabra es palabra porque al final tiene un espacio, o no hay nada más.
Y el programa en ese caso devuelve todo lo que hemos escrito que se supone será una palabra (sin espacio final).

Saludos