Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: LuisM en 27 de Junio 2017, 16:47

Título: Cómo usar arrays o arreglos Java. Objetos y tipos primitivos; length. CU00669B
Publicado por: LuisM en 27 de Junio 2017, 16:47
Hola a todos, pego el codigo del ejercicio CU00669B del taller práctico de programación orientada a objetos con Java y BlueJ. Desde ya muchas gracias.

Saludos, Luis.

clase principal - método main

Código: [Seleccionar]
import java.util.*;
// Aquí el test con el método main
public class TestMeses {
    public static void main (String [ ] args) {
        EntradaDeTeclado entrada = new EntradaDeTeclado();
        boolean acierto = false;
        String respuesta = "";
        String[ ] meses = new String [12];
        meses [0] = "enero";
        meses [1] = "febrero";
        meses [2] = "marzo";
        meses [3] = "abril";
        meses [4] = "mayo";
        meses [5] = "junio";
        meses [6] = "julio";
        meses [7] = "agosto";
        meses [8] = "setiembre";
        meses [9] = "octubre";
        meses [10] = "noviembre";
        meses [11] = "diciembre";
        String mesSecreto = meses [9];         
        do {
            System.out.println("Adivine el mes secreto. Introduzca el nombre del mes en minúsculas:");
            entrada.pedirEntrada();
            respuesta=entrada.getEntrada();
            if (respuesta.equals(mesSecreto)) { System.out.println("Has acertado !");
                acierto = true;}
        }
        while (acierto==false);
    }
} //Cierre del main


Clase para la entrada por teclado del nombre del mes - ya utilizada en otros ejercicios

Código: [Seleccionar]
import java.util.Scanner; //Importación del código de la clase Scanner desde la biblioteca Java
// Definimos una clase EntradaDeTeclado aprenderaprogramar.com
public class EntradaDeTeclado {
    private String entradaTeclado; //Variable de instancia (campo) de la clase
    private int entradaNumero;
    public EntradaDeTeclado ()  { //Constructor
        entradaTeclado="";
        entradaNumero=0;
     //   pedirEntrada(); //Esto es una llamada a un método interno. Al crear un objeto ejecutamos el método
    } //Cierre del constructor
    public void pedirEntrada ()  {  //Método de la clase         
        Scanner entradaEscaner = new Scanner (System.in);
        entradaTeclado = entradaEscaner.nextLine ();
        } //Cierre del método pedirEntrada
    public void pedirNumero (){
        Scanner entradaEscaner = new Scanner (System.in);
        entradaNumero = entradaEscaner.nextInt ();
    }
    public String getEntrada () { return entradaTeclado; } //Cierre del método getEntrada

    public int getNumero() {return entradaNumero;}
   
    public String getPrimeraPalabra ()  {
               for (int i=0; i < entradaTeclado.length() - 1; i++) {
            if (entradaTeclado.substring (i, i+1).equals(" ") ) {     //IMPORTANTÍSIMO: COMPARAMOS CON EQUALS
                return entradaTeclado.substring(0, i+1);         }
        }
        return entradaTeclado;  //Caso de que no se detecte ningún espacio devolvemos lo que haya
    } //Cierre del método getPrimeraPalabra

    public int getLongitud ()  {  //Método de la clase
        return entradaTeclado.length();
    } //Cierre del método getLongitud

} //Cierre de la clase
Título: Re:Arrays o arreglos Java. Objetos y tipos primitivos; length. Tipos de colecciones
Publicado por: DRANXZ88 en 06 de Julio 2017, 18:48
Está bien resuelto, pero puedes optimizar más tu código sin usar otra variable. Como ejemplo donde dice boolean acierto eso lo puedes omitir poniendo así en la condición while.

Código: [Seleccionar]
while (respuesta.equals(mesSecreto) == false);