Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: LPM en 24 de Noviembre 2014, 23:58

Título: CU00657B - Pedir datos en Java por consola. Ejercicio ejemplo uso clase Scanner
Publicado por: LPM en 24 de Noviembre 2014, 23:58
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);
    }
}
Título: Re: CU00657B - Pedir datos en Java por consola. Ejercicio.
Publicado por: toni_apr 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.
Título: Re: CU00657B - Pedir datos en Java por consola. Ejercicio.
Publicado por: LPM en 26 de Noviembre 2014, 03:21
Hola toni

gracias por responder.

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