Autor Tema: Pedir datos en Java por consola (teclado) y contar número de caracteres CU00657B  (Leído 5490 veces)

gary

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 5
    • Ver Perfil
EJERCICIO

Crea una clase con un método main que pida una entrada de teclado y usando condicionales, el método length de la clase String y el método substring de la clase String, muestre un mensaje indicando:

a) Si la cadena introducida tiene menos de 5 caracteres, entre 5 y 15 caracteres o más de 15 caracteres.

b) Si la cadena introducida comienza por la letra a.

Ejemplo: se pide la entrada y el usuario introduce “vereda”. Por pantalla se debe mostrar: “La cadena introducida tiene entre 5 y 15 caracteres y no comienza por a”.

Lo hice dividiendo el problema en funciones, en lugar de hacer todo el codigo en el metodo main.

Código: [Seleccionar]
import java.util.Scanner; //Importación del código de la clase Scanner desde la biblioteca Java
//Código de nuestra clase principal ejemplo aprenderaprogramar.com
public class TestPrograma1 {
 
    public static void main (String [ ] args) {
        System.out.println ("Empezamos el programa");
        System.out.println ("Por favor introduzca una cadena por teclado:");
        String entradaTeclado = "";
        Scanner entradaEscaner = new Scanner (System.in); //Creación de un objeto Scanner
        entradaTeclado = entradaEscaner.nextLine (); //Invocamos un método sobre un objeto Scanner
       
        TestPrograma1 tp1=new TestPrograma1();
        String result=tp1.intervaloCaracteres(entradaTeclado);
        String result2=tp1.comienzaConA(entradaTeclado);
        System.out.println ("Entrada recibida por teclado es: \"" + entradaTeclado +"\"");
        System.out.println (result+" y "+result2);
    } //Cierre del main
   
    public String intervaloCaracteres(String texto){
        int x=texto.length();
        String result="La cadena tiene ";
        if(x<5){
            return result+"menos de 5 caracteres";
       
        }else if (x>15){
                    return result+"mas de 15 caracteres";
           
              }else{
                    return result+"entre 5 y 15 caracteres";
              }
    }
   
    public String comienzaConA(String texto){
        String t=texto.substring(0, 1);
        System.out.println("la letra es: "+t);//Prueba
        if(t.startsWith("a")){
            return "comienza por 'a'";
        }else{
            return "no comienza por 'a'";
        }
    }
} //Cierre de la clase

En esta parte del codigo tengo una duda, porque no puedo comparar un String con "a":
Código: [Seleccionar]
public String comienzaConA(String texto){
        String t=texto.substring(0, 1);
        System.out.println("la letra es: "+t);//Prueba
        if(t=="a"){    // EN ESTA PARTE ESTA MI DUDA
            return "comienza por 'a'";
        }else{
            return "no comienza por 'a'";
        }
    }
« Última modificación: 11 de Febrero 2017, 20:35 por Ogramar »

Erik_Escriche

  • Principiante
  • **
  • Mensajes: 65
    • Ver Perfil
Re:Pedir datos en Java por consola (teclado). Ejercicio (CU00657B)
« Respuesta #1 en: 08 de Enero 2017, 16:06 »
Hola gary.

El ejercicio funciona correctamente. Respecto a tu duda, el operador == no puede usarse para comparar el contenido de dos objetos (en una entrega posterior se explica el porqué). Para comprobar si el contenido de dos Strings es el mismo puedes usar el método equals() o el método equalsIgnoreCase(). El segundo, a la hora de comparar, no tiene en cuenta ni las mayúsculas ni los acentos.

En tu ejercicio quedaría así:

Código: [Seleccionar]
public String comienzaConA(String texto){       
        System.out.println("la primera letra es: "+texto.substring(0,1));//Prueba
        if(texto.substring(0,1).equalsIgnoreCase("a")){
            return "comienza por 'a'";
        }else{
            return "no comienza por 'a'";
        }
    }

He modificado algunas cosas de tu código porque había variables que no eran necesarias, pero no son cambios importantes:

Código: [Seleccionar]
import java.util.Scanner; //Importación del código de la clase Scanner desde la biblioteca Java
//Código de nuestra clase principal ejemplo aprenderaprogramar.com
public class TestPrograma1 {
 
    public static void main (String [ ] args) {
        System.out.println ("Empezamos el programa");
        System.out.println ("Por favor introduzca una cadena por teclado:");
        String entradaTeclado = "";
        Scanner entradaEscaner = new Scanner (System.in); //Creación de un objeto Scanner
        entradaTeclado = entradaEscaner.nextLine (); //Invocamos un método sobre un objeto Scanner
       
        TestPrograma1 tp1=new TestPrograma1();       
        System.out.println ("Entrada recibida por teclado es: \"" + entradaTeclado +"\"");
        System.out.println (tp1.intervaloCaracteres(entradaTeclado)+" y "+tp1.comienzaConA(entradaTeclado));
    } //Cierre del main
   
    public String intervaloCaracteres(String texto){       
        String result="La cadena tiene ";
        if(texto.length()<5){
            return result+"menos de 5 caracteres";
       
        }else if (texto.length()>15){
                    return result+"mas de 15 caracteres";
           
              }else{
                    return result+"entre 5 y 15 caracteres";
              }
    }
   
    public String comienzaConA(String texto){       
        System.out.println("la primera letra es: "+texto.substring(0,1));//Prueba
        if(texto.substring(0,1).equalsIgnoreCase("a")){
            return "comienza por 'a'";
        }else{
            return "no comienza por 'a'";
        }
    }
} //Cierre de la clase

Espero que te sirva. ¡Saludos!
« Última modificación: 08 de Enero 2017, 16:21 por Erik_Escriche »

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".