Autor Tema: Ejercicio Java Desde Cero Entrega CU00657B Metodo Main  (Leído 4261 veces)

xBag

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 8
    • Ver Perfil
Ejercicio Java Desde Cero Entrega CU00657B Metodo Main
« en: 25 de Noviembre 2014, 03:11 »
Hola muchachones!  ;D

Tenía días sin postear es porque me ha servido bastante el curso y he aprendido algunas cositas. Gracias a la comunidad y a los que se encargan de preparar la enseñanza.

Lo que traigo ahora es un ejercicio que dice así:

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


Yo hice mi código el programa me funciona solo quería que lo vieran y me digan qué les parece. Llevo 1 mes en Java, creen que para ese tiempo voy bien? Bueno ahí les dejo y me avisan.

Código: [Seleccionar]
import java.util.Scanner;
public class Vereda {
public static void main (String [] args){
String PalabraEscrita ="";
int i;
for (i=0;i<10;i++){
System.out.println("Introduzca la palabra");
Scanner palabra = new Scanner(System.in);
PalabraEscrita = palabra.nextLine();
System.out.println("La palabra \"" + PalabraEscrita + "\" " + "ha sido introducida");
int Largo = PalabraEscrita.length();
PalabraEscrita = PalabraEscrita.toUpperCase();
boolean Inicio = PalabraEscrita.startsWith("A");
if (Largo<5 && Inicio==true){System.out.println("Tiene menos de 5 caracteres y empieza por la letra A");
}else if (Largo<5 && Inicio==false){System.out.println("Tiene menos de 5 caracteres y NO empieza por la letra A");
}else if (Largo<=15 && Inicio==true){System.out.println("Tiene entre 5 y 15 caracteres y empieza por la letra A");
}else if (Largo<=15 && Inicio==false){System.out.println("Tiene entre 5 y 15 caracteres y NO empieza por la letra A");
}else if (Largo>15 && Inicio==true){System.out.println("Tiene más de 15 caracteres y empieza por la letra A");
}else if (Largo>15 && Inicio==false){System.out.println("Tiene más de 15 caracteres y NO empieza por la letra A");
}
}
}
}


NOTA: Me surgió la duda, puedo hacer que el programa SE DETENGA, en caso de que durante el "For", en la pregunta 3 o 4 o cual sea, yo escriba "Salir" ? Lo intenté y fracasé alguien me ayuda? Tengo curiosidad y quisiera aprender. Gracias de antemano.

Saludos!

Jorge lopez

  • Sniper
  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 248
  • @SniperOfElite
    • Ver Perfil
Re:Ejercicio Java Desde Cero Entrega CU00657B Metodo Main
« Respuesta #1 en: 25 de Noviembre 2014, 23:51 »
 Hola  xBag!

Con relación a lo que pide el enunciado del ejercicio te comento que aunque tu programa realiza la tarea requerida, no has cumplido del todo lo que se pide en el enunciado del ejercicio, no has usado el método substring y en su lugar has usado el método startsWith. No es que esto este mal pero aparte de que no cumples del todo con el ejercicio, el método substring el cual no usas es muy útil para este ejercicio y mas adelante te mostrare como usarlo para aumentar la eficiencia de tu programa.

Con relación a tu código en general, te comento lo siguiente.

El nombre de la clase no es muy apropiado, el nombre de una clase debe de ser descriptivo de lo que es o lo que hace. Aunque tal vez solo elegiste un nombre para tu clase sin pensar en esto, es bueno que tengas esto presente siempre que estés buscando un nombre para una clase.

En el método main, tienes la variable local PalabraEscrita (y todas las demás variables), el nombre de una variable debe de comenzar preferiblemente con letra minúscula, (palabraEscrita) aunque esto no afecta la funcionalidad del código, si estas usando un standar de programación entre programadores que han convenido que esto debe de ser así en todo código java.

Con relación a tu duda:
Citar
Me surgió la duda, puedo hacer que el programa SE DETENGA, en caso de que durante el "For", en la pregunta 3 o 4 o cual sea, yo escriba "Salir" ? Lo intenté y fracasé alguien me ayuda?
Para tu bucle finalizar es necesario que la variable i alcance un valor mayor a 10, para lograr lo que quieres bastaría con igualar el valor de i a (un numero mayor que 10) 11 mediante un condicional if usando como condición que el valor de la variable palabraEscrita sea igual a el String "Salir".

A continuación dejo un nuevo código creado a partir de tu clase Vereda, con comentarios incluidos en cada cambio y/o mejora.
Código: [Seleccionar]
import java.util.Scanner;
public class AnalizarPalabra
{
    public static void main (String [] args)
    {
        String palabraEscrita = "";
        for (int i=0;i<10;i++){//Indicamos el tipo dinámico (int) de i en el mismo bucle for
            System.out.println("Introduzca una palabra: ");
            Scanner palabra = new Scanner(System.in);
            palabraEscrita = palabra.next();
            if(!palabraEscrita.equals("salir"))//El operador ! antes de la condición, niega el valor de esta, se leería: Si la palabra escrita NO ES IGUAL a salir.
            {
               System.out.println("La palabra \"" + palabraEscrita + "\" " + "ha sido introducida");
            }
            int largo = palabraEscrita.length();
            boolean inicio = false;
            if(palabraEscrita.substring(0,1).equalsIgnoreCase("a")){inicio = true;}/*Usamos el método subString para analizar la primera letra de la palabra escrita
            y usamos el método equalsIgnoreCase(String str); para que el programa ignore diferencia de mayúsculas y minúsculas ("a" o "A")*/
            if(palabraEscrita.equals("salir"))//Este condicional finalizaría el bucle en caso de cumplirse, puesto que asignara a "i" un valor mayor que 10.
            {
                i += 11; System.out.println("\fPrograma finalizado...");//Usar el operador += en esta linea es lo mismo que decir: i  = i + 11;
            }
            else  if (largo<5 && inicio){System.out.println("Tiene menos de 5 caracteres y empieza por la letra: " + palabraEscrita.substring(0,1));/*Extraemos
                la primera letra de la palabra escrita, podria ser "a" o "A"*/
            }else if (largo<5 && !inicio){System.out.println("Tiene menos de 5 caracteres y NO empieza por la letra a/A");//Usamos el operador ! en lugar de == false/true
            }else if (largo<=15 && inicio){System.out.println("Tiene entre 5 y 15 caracteres y empieza por la letra: " + palabraEscrita.substring(0,1));
            }else if (largo<=15 && !inicio){System.out.println("Tiene entre 5 y 15 caracteres y NO empieza por la letra a/A");
            }else if (largo>15 && inicio){System.out.println("Tiene más de 15 caracteres y empieza por la letra: " + palabraEscrita.substring(0,1));
            }else if (largo>15 && !inicio){System.out.println("Tiene más de 15 caracteres y NO empieza por la letra a/A");
            }
        }
    }
}
Espero que encuentres algo útil.

Saludos!
« Última modificación: 26 de Noviembre 2014, 00:05 por Jorge lopez »
while(estesVivo)
{
  aprende();
  ayuda();
  enseña();
}
if(mueres){teRecordaran();}

xBag

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 8
    • Ver Perfil
Re:Ejercicio Java Desde Cero Entrega CU00657B Metodo Main
« Respuesta #2 en: 28 de Noviembre 2014, 01:22 »
MIL GRACIAS!

 

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