Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: umadara en 30 de Junio 2016, 19:30

Título: Método compareTo aplicado a String Pedir datos Java por consola teclado CU00657B
Publicado por: umadara en 30 de Junio 2016, 19:30
Hola, aqui otro ejercicio, el CU00657B del curso Aprende a programar en Java como si estuvieras en primero:

Código: [Seleccionar]
import java.util.Scanner; //Importación del código de la clase Scanner desde la biblioteca Java

public class contarLetras {
   
        public static void main (String [ ] args) {
            Scanner entradaEscaner = new Scanner (System.in); //Creación de un objeto Scanner
           
            String entradaTeclado = "";
                       
            entradaTeclado = entradaEscaner.nextLine ();
           
            if (entradaTeclado.length() <= 5) {
                System.out.println  ("la cadena tiene menos de 5 carácteres");
            }
           
            else if(entradaTeclado.length() >=6 && entradaTeclado.length() <15) {
                System.out.println  ("la cadena tiene entre 5 y 15 carácteres");
            }
           
            else if (entradaTeclado.length() >15) {
                System.out.println  ("la cadena tiene más de 15 carácteres");
            }
           
            if (entradaTeclado.substring(0,1).compareTo("a") == 0) {
                System.out.println  ("la cadena comienza por la letra a");
            }
           
            else {
                System.out.println  ("la cadena no comienza por la letra a");
            }   
       
        }

}

Espero respuestas y gracias de antemano

Saludos
Título: Re:(CU00657B) Pedir datos en Java por consola (teclado).
Publicado por: DRANXZ88 en 01 de Julio 2016, 22:38
Está bien el ejercicio; lo que te recomendaría es que pida al usuario que escriba una palabra para saber que se esta ejecutado. Por ejemplo poner este código antes de entradaTeclado.

Código: [Seleccionar]
System.out.println("Ingrese una palabra: ");
Título: Re:(CU00657B) Pedir datos en Java por consola (teclado).
Publicado por: eduardoc en 02 de Julio 2016, 16:27
Hola Umadara, cómo estás?

En primer lugar darte las gracias porque estuve un buen rato buscando el motivo por el cual no funcionaba mi comparación con la primer letra. Miré tu resolución y... compareTo() ;)

Yendo a lo que nos trae, me parece que podrían corregirse algunas cosas en tu código, si me permitís...

1. por lo que leo en el código parece que cuando una cadena recibida en entradaTeclado tenga 15 caracteres de longitud no se hace nada y debería emitirse el mensaje "entre 5 y 15"
2. me parece que cuando utilizás "System.out.println" estás devolviendo la frase en dos renglones y creo que debería ser en uno sólo. Acumulando el texto en una variable String para mostrarla al final de las evaluaciones podría ser un modo.
3. Si bien no es grave, me parece que el código no considera al caracter "A", que también es la letra a como indica en la consigna.

Por último y no se si es más por gusto o por optimizar el código. Cuando unis varios if son una especie de filtro.
Es decir, en el orden que lo presentás, en la segunda condición "if(entradaTeclado.length() >=6 && entradaTeclado.length() <15)" no sería necesario preguntar si el valor es >= a 6 ya que esos valores fueron contemplados en el if anterior ("entradaTeclado.length() <= 5") y no llegarían a esta consulta ;)

Saludos,
Edu.
Título: Re:(CU00657B) Pedir datos en Java por consola (teclado).
Publicado por: DRANXZ88 en 02 de Julio 2016, 17:29
Tenes razón falta condición esa parte y se puede mejorar la forma que imprime también.