Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: hymsoft en 06 de Julio 2016, 20:21

Título: En este ejercicio Java no me funcionaba la comprobación de las letras CU00657B
Publicado por: hymsoft en 06 de Julio 2016, 20:21
Después de una semana laaaaarga de trabajo dejo una nueva resolución, ejercicio CU00657B del tutorial práctico de programación Java con ejercicios resueltos. Como siempre, espero comentarios :-)

En este ejercicio no  me funcionaba la comprobación de la letra a así que buscando comparación de cadenas en java encontre el método equals de la clase String :-)

Código: [Seleccionar]
/**
 * Resolucion al ejercicio CU00657B
 *
 * @author Hugo Segura
 * @version (a version number or a date)
 */
import java.util.Scanner;

public class ejercicioClase57
{
     
    public static void main(String[]args){
        //Declarcion de variables
        String entradaTexto = "";//recibe un ingreso de texto por el teclado
        int cantidadCaracteres = 0;
        String miTexto = " entre 5 y 15 ";//Valor por defecto de la cantidad de caracteres
        String comienzaConA = " no comienza con a";//Valor por defecto si comienza con la letra a
        String primeraLetra = "";//aca guardo la primera letra de la cadena ingresada
        //fin declaracion de variables
       
        Scanner entradaScanner = new Scanner(System.in);
        System.out.println("Ingrese una cadena de caracteres por favor...");
        entradaTexto = entradaScanner.nextLine();
       
        //compruebo que cantidad de caracteres ingreso el usuario
        cantidadCaracteres = entradaTexto.length();
        //Si se cumple alguna de las condiciones modifico el texto sino, uso el valor por defecto
        if(cantidadCaracteres < 5){
            miTexto = " menos de 5 ";
        }else if(cantidadCaracteres > 15){
            miTexto = " más de 5 ";
        }
       
        //compruebo si la cadena que ingreso el usuario comienza con a
        //si se cumple la condicion modifico el texto sino uso el valor por defecto
        System.out.println(entradaTexto.substring(0,1));
        primeraLetra = entradaTexto.substring(0,1);
        if (primeraLetra.equals("a") || primeraLetra.equals("A")){
            comienzaConA = " cominza con la letra a ";
        }
       
        //Imprimo la resolucion del ejercicio
        System.out.println("La cadena introducida tiene" + miTexto + "caracteres y" + comienzaConA);
    }//cierre main
}//cierre clase
Título: Re:Pedir datos por consola(Teclado) (CU00657B)
Publicado por: DRANXZ88 en 06 de Julio 2016, 21:42
El código función super bien, está bien resuelto. Solo alguna sugerencia; si es posible tenes que dividir por clase para que el código sea más orientado a objetos.

Y un comentario sobre tu condición:

Código: [Seleccionar]
if (primeraLetra.equals("a") || primeraLetra.equals("A")){
            comienzaConA = " cominza con la letra a ";
        }

Podías poner así nomas que toma igual si es mayúscula o minúscula es un comentario nomas:

Código: [Seleccionar]
if (primeraLetra.equalsIgnoreCase("a")) {
            comienzaConA = " cominza con la letra a ";
        }

Y comienza, escribiste cominza, solo es una observación. Código bien, saludos  :) :)
Título: Re:Pedir datos por consola(Teclado) (CU00657B)
Publicado por: hymsoft en 07 de Julio 2016, 23:44
Muchas gracias DRANXZ. Todo lo que me dicen lo voy incorporando. En lo que respecta a lo de clases es que haga una clase con el método main y de ahi llame a otra clase que me devuelva el resultado de el ejercicio???
Título: Re:Pedir datos por consola(Teclado) (CU00657B)
Publicado por: DRANXZ88 en 07 de Julio 2016, 23:51
Sí, podes crear una clase donde hay un método que te haga todo lo que hiciste en el main que es comprobar la cantidad de carácter y si empieza por a y como tenemos luego una clase entrada del teclado creado podes utilizar eso para gestionar el teclado. Pero es una opinión nomas esta bien como hace. Yo te digo que divida por clases para estar más familiarizado con la POO.
Título: Re:Pedir datos por consola(Teclado) (CU00657B)
Publicado por: hymsoft en 07 de Julio 2016, 23:59
Gracias!!! estuve a punto de usar la clase entrada teclado, te juro, pero como era de otro ejercicio no la use :-/ Dale... a partir de ahora por a tomar tu consejo y de paso me va a servir para que me digas por ejemplo si van bien divididas las clases.
Un saludo!!
Título: Re:Pedir datos por consola(Teclado) (CU00657B)
Publicado por: DRANXZ88 en 08 de Julio 2016, 00:04
Así nomas se aprende, ayudándonos todos. Dividir por clases y crear métodos reutilizables es un objetivo de la programación orientada a objetos saludos y siga adelante.