Autor Tema: CU00657B - Pedir datos en Java por consola. Ejercicio ejemplo uso clase Scanner  (Leído 4390 veces)

LPM

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 35
    • Ver Perfil
Hola.

Las variables globales las declaré tipo String porque la finalidad del programa es mostrar el resultado en forma de texto

y porque el programa se basa en imprimir todos los resultados en un texto, también declaré los métodos como private y void.

Código: [Seleccionar]
import java.util.Scanner;
public class EntradaString
{
    private String texto;
    private String textoLongitud;
    private String esA;
   
    public EntradaString(){
        texto="";
        textoLongitud="";
        esA="";
    }
   
    private void escribaCadena(){
        Scanner teclado=new Scanner (System.in);
        System.out.println("Escriba algo.");
        texto=teclado.nextLine();
    }
   
    private void contarCaracteres(){
        if (texto.length()<5){textoLongitud="menos de 5";}
        else if (texto.length()>=5&&texto.length()<=15) {textoLongitud="entre 5 y 15";}
        else {textoLongitud="mas de 15";}
    }
   
    private void comienzoA(){
        String comprueba=texto.substring(0,1);
        if (comprueba.equalsIgnoreCase("a")){esA="comienza con a.";}
        else {esA="no comienza con a.";}
    }
   
    public static void main (String[]args){
        EntradaString textoEntrada=new EntradaString();
        textoEntrada.escribaCadena();
        textoEntrada.contarCaracteres();
        textoEntrada.comienzoA();
        System.out.println("La cadena introducida tiene "+textoEntrada.textoLongitud+" y "+textoEntrada.esA);
    }
}


Luego quise usar el charAt para ver si comienza con "a" y que el programa preguntara si queria contar todos los caracteres o solo las letras.

Código: [Seleccionar]
import java.util.Scanner;
public class ProbarEntradaString
{
    private String texto;
    private String cadenaLongitud;
    private String esA;
   
    public ProbarEntradaString(){
        texto="";
        cadenaLongitud="";
        esA="";
    }
   
    private void ingresarTexto(){
        Scanner teclado=new Scanner(System.in);
        System.out.println("Escriba algo.");
        texto=teclado.nextLine();   
    }
   
    private void contadorCaracteres(){
        if (texto.length()<5){cadenaLongitud="menos de 5 caracteres";}
        else if(texto.length()>=5&&texto.length()<=15){cadenaLongitud="entre 5 y 15 caracteres";}
        else {cadenaLongitud="mas de 15 caracteres";}
}
   
    private void contadorLetras(){
        int letras=0;
        for (int x=0;x<texto.length();x++) {
            if(Character.isLetter(texto.charAt(x))) {letras++;}
        }   
        if (letras<5){cadenaLongitud="menos de 5 letras.";}
        else if (letras>=5&&letras<=15){cadenaLongitud="entre 5 y 15 letras.";}
        else {cadenaLongitud="mas de 15 letras.";}
    }

    private void comienzoA(){
        if(Character.toLowerCase(texto.charAt(0))=='a' ) {esA="comienza con a.";}
        else {esA="no comienza con a.";}
    }

    public void elegirContador(){
        Scanner teclado=new Scanner(System.in);
        System.out.println("Contar todos los caracteres(escriba car) o solo letras(escriba let)?");
        String opcion=teclado.nextLine();
        if (opcion.equalsIgnoreCase("car")){contadorCaracteres();}
        else if (opcion.equalsIgnoreCase("let")){contadorLetras();}
        else {System.out.println("No eligió una opción correcta.");elegirContador();}           
    }
   
    public static void main (String[]args){
       ProbarEntradaString probar=new ProbarEntradaString();
       probar.ingresarTexto();
       probar.elegirContador();
       probar.comienzoA();
       System.out.println("El texto introducido tiene "+probar.cadenaLongitud+" y "+probar.esA);
    }
}
« Última modificación: 27 de Noviembre 2014, 08:45 por Alex Rodríguez »

toni_apr

  • Avanzado
  • ****
  • Mensajes: 497
  • Curiosidad, es uno de los pilares del Conocimiento
    • Ver Perfil
Re: CU00657B - Pedir datos en Java por consola. Ejercicio.
« Respuesta #1 en: 25 de Noviembre 2014, 22:51 »
Hola LPM

Tu ejercicio (clase EntradaString) me ha sorprendido. No he visto otro como este.

Un método main que no toma decisiones. Las traspasa a los otros métodos de la clase. Bien.

Bien, crear un objeto de la propia clase para poder llamar a los métodos que no son estáticos.

Ejecución del ejercicio perfecta.

----------
Tu clase ProbarEntradaString.
Variación de la clase EntradaString que permite escoger entre contar longitud de la cadena o solo caracteres alfabéticos.

También la encuentro muy bien, donde has cambiado el uso se substring por el método charAt para recuperar la primera letra de la cadena.

Salud y adelante.

LPM

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 35
    • Ver Perfil
Re: CU00657B - Pedir datos en Java por consola. Ejercicio.
« Respuesta #2 en: 26 de Noviembre 2014, 03:21 »
Hola toni

gracias por responder.

y qué bueno que esté bien el ejercicio  =)


 

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