Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - eduardoc

Páginas: [1] 2 3
1
Buenas, dejo las respuestas al ejercicio.Gracias! Saludos,

Edu.

EJERCICIO

Citar
¿Se puede acceder a un objeto anónimo contenido en un ArrayList?
Si, al disponer del puntero podemos acceder a la información contenida.

Citar
¿Se puede inicializar un objeto de una clase que contiene tres atributos de tipo objeto declarando en el constructor que los atributos se inicializan mediante objetos anónimos?
Si, vinimos haciéndolo cuando iniciábamos los constructores de clases con valores, por ejemplo, "0", "Desconocido" o "".

2
Buenas, dejo otro ejercicio, el CU00667B del curso básico de programación Java. Gracias de antemano. Saludos,

Edu.

Citar
EJERCICIO

Crea una clase denominada ListaCantantesFamosos que disponga de un atributo ArrayList listaCantantesFamosos que contenga objetos de tipo CantanteFamoso. La clase debe tener un método que permita añadir objetos de tipo CantanteFamoso a la lista. Un objeto de tipo CantanteFamoso tendrá como atributos nombre (String) y discoConMasVentas (String), y los métodos para obtener y establecer los atributos. Crea una clase test con el método main que inicialice un objeto ListaCantantesFamosos y añade manualmente dos objetos de tipo CantanteFamoso a la la lista. Usando iterator muestra los nombres de cada cantante y su disco con más ventas por pantalla. Se debe pedir al usuario un nombre y disco con más ventas de otro cantante famoso, y una vez introducidos los datos mostrar la lista actualizada usando iterator. Una vez mostrada la lista actualizada, se debe dar opción a elegir entre volver a introducir los datos de otro cantante o salir del programa (se podrán introducir tantos datos de cantantes como se desee. Para ello usa un bucle while que dé opción a elegir al usuario). Puedes comprobar si tu código es correcto consultando en los foros aprenderaprogramar.com.


Clase (main): TestListaCantantesFamosos

Código: [Seleccionar]
// (CU00667B) - Tipo Iterator api Java. Ejemplo.
public class TestListaCantantesFamosos{
    public static void main(String[] Args){
        System.out.println("Inicio del programa.");
        System.out.println("====================");
       
        // Inicializar Lista.
        ListaCantantesFamosos2 listaCantantes = new ListaCantantesFamosos2();
       
        // Agregar Primer Cantante (carga inicial.)
        CantanteFamoso cantanteFamoso1 = new CantanteFamoso();
        cantanteFamoso1.setCantanteFamoso("Madonna", "All I want is you");
        listaCantantes.addCantanteFamoso(cantanteFamoso1);
       
        // Agregar Segundo Cantante (carga inicial.)
        CantanteFamoso cantanteFamoso2 = new CantanteFamoso();
        cantanteFamoso2.setCantanteFamoso("Jorge Negrete", "Jalisco");
        listaCantantes.addCantanteFamoso(cantanteFamoso2);

        listaCantantes.listarCantantesFamosos();

        String auxSeguirIngresando = "s";
       
        while(auxSeguirIngresando.equalsIgnoreCase("s")){
            listaCantantes.addCantanteFamoso(); 
            listaCantantes.listarCantantesFamosos();
           
            EntradaDeTeclado auxRespuesta = new EntradaDeTeclado("Continua Ingresando cantantes? (S/N)");
            auxSeguirIngresando = auxRespuesta.getEntrada();
        }
    }
}


Clase: ListaCantantesFamosos2

Código: [Seleccionar]
// (CU00667B).

import java.util.ArrayList;
import java.util.Iterator;

public class ListaCantantesFamosos2{
    private ArrayList<CantanteFamoso> listaCantantesFamosos;
   
    public ListaCantantesFamosos2(){
        listaCantantesFamosos = new ArrayList<CantanteFamoso>();
    }
       
    public void addCantanteFamoso(){
        CantanteFamoso cantanteFamoso = new CantanteFamoso();
       
        EntradaDeTeclado entrada1 = new EntradaDeTeclado("Por favor, ingrese el nombre del cantante: ");
        cantanteFamoso.setCantante(entrada1.getEntrada());
       
        EntradaDeTeclado entrada2 = new EntradaDeTeclado("Por favor, ingrese el nombre del disco más ventas");
        cantanteFamoso.setDiscoConMasVentas(entrada2.getEntrada());
       
        listaCantantesFamosos.add(cantanteFamoso);
    }
   
    public void addCantanteFamoso(CantanteFamoso cantanteFamoso){
        listaCantantesFamosos.add(cantanteFamoso);
    }
   
    public void listarCantantesFamosos(){
        System.out.println("La lista actualizada contiene los siguientes datos:");
        Iterator<CantanteFamoso> it = listaCantantesFamosos.iterator();
        while (it.hasNext()){
            CantanteFamoso cantante = it.next();
            System.out.println("Cantante: " + cantante.getCantante() + " - Disco con más ventas: " + cantante.getDiscoConMasVentas());
        }
    }
}


Clase: CantanteFamoso

Código: [Seleccionar]
public class CantanteFamoso{
    String cantante;
    String discoConMasVentas;
   
    public CantanteFamoso(){
        cantante = "";
        discoConMasVentas = "";
    }

    // Setters.
    public void setCantante(String valorCantante){
        cantante = valorCantante;
    }
    public void setDiscoConMasVentas(String valorDiscoConMasVentas){
        discoConMasVentas = valorDiscoConMasVentas;
    }
   
    public void setCantanteFamoso(String valorCantante, String valorDiscoConMasVentas){
        cantante = valorCantante;
        discoConMasVentas = valorDiscoConMasVentas;
    }
   
    // Getters.
    public String getCantante(){return cantante;}
    public String getDiscoConMasVentas(){return discoConMasVentas;}
}

Clase: EntradaDeTeclado
Código: [Seleccionar]
import java.util.Scanner;

public class EntradaDeTeclado {
    private String entradaTeclado; //Variable de instancia (campo) de la clase
 
    // Constructor.
    public EntradaDeTeclado ()  {
        pedirEntrada(); //Esto es una llamada a un método interno. Al crear un objeto ejecutamos el método
    } //Cierre del constructor

    public EntradaDeTeclado(String textoPregunta){
        System.out.println(textoPregunta);
        pedirEntrada();
    }
   
    // Función interna de la clase en la que recibe un texto ingresado por teclado del usuario.
    public void pedirEntrada ()  {  //Método de la clase         
        entradaTeclado="";
        Scanner entradaEscaner = new Scanner (System.in);
        entradaTeclado = entradaEscaner.nextLine ();}
   
    // Getter, devuelve el texto ingresado.
    public String getEntrada () { return entradaTeclado;}
   
    // Getter devuelve la primer palabra del texto ingresado.
    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;
    }
   
    // Función, devuelve la longitud (en caracteres) del texto ingresado.
    public int getLongitud ()  {  //Método de la clase
        return entradaTeclado.length();
    }

}

3
Hola DRANXZ88, qué tal?

Muchísimas gracias!

Ahora me quedó muy claro!!!

Saludos,
Edu.

4
Hola DRANXZ88, cómo estás?

Muchas gracias por tu respuesta.

Te pido disculpas pero creo que no llego a entenderte. Cuando mencionás:

Citar
Por ejemplo vos podía crear el objeto EntradaDeTeclado entrada1 = new EntradaDeTeclado(); en el main nomas
te referís a que sólo debería usarla en la clase: TestListaCantantes y no duplicarlo en la clase: ListaCantantesFamosos?
Si es esto, coincido con vos pero por más que intenté no encontré modo de llamar a "entrada1".
Si pudieses aclarame, te lo voy a a gradecer.

Citar
y que tu lista cargada podía estar en ListaCantantesFamoso nomas
y esto sería que la cargue en la clase: ListaCantantesFamosos?
Si es esto, la inicialicé en la clase: TestListaCantantes porque así lo mencionaba la consigna del ejercicio.

Aprovecho para hacer una consulta a quien pueda ayudarme.

En la clase EntradaDeTeclado incluí el siguiente código:
Código: [Seleccionar]
    public String respuestaAPregunta(String textoPregunta){
        System.out.println(textoPregunta);
        pedirEntrada();
        return entradaTeclado;
    }

Con la finalidad de disponer de un método para hacer preguntas al usuario final. Me pareció interesante probar una función que si bien para este código no va a hacer la gran diferencia, creo que en diseños más amplios podría ser útil (al menos la idea).
Si alguien me explica como debería llamarlo desde las clases: TestListaCantantes o ListaCantantesFamosos porque por más que intenté siempre me dio un error de compilación en estas dos clases, no así en la clase EntradaDeTeclado.

Gracias mil a todos. Saludos,
Edu.

5
Hola Geoman777,

Tal como mencionó Dimiste, está faltando el valor "especialidad" y los cambios deben mostrarse en los setters (que es cuando se realizan los cambios, en los getters se consultan los valores pero no tenemos modo de saber si ha sufrido cambio o no).

Saludos,
Edu.


6
Buenas, comparto la solución del ejercicio de referencia CU00666B del curso de programación Java para no expertos. Muchas gracias, saludos.

Edu.

Citar
EJERCICIO

Crea una clase denominada ListaCantantesFamosos que al ser inicializada contenga un ArrayList con tres Strings que sean el nombre de cantantes famosos. Crea una clase test con el método main que inicialice un objeto ListaCantantesFamosos y usando un for extendido muestre los cantantes en la lista por pantalla. Se debe pedir al usuario un nombre más de cantante famoso, y una vez introducido mostrar la lista actualizada usando un for extendido. Una vez mostrada la lista actualizada, se debe dar opción a elegir entre volver a introducir otro cantante o salir del programa (se podrán introducir tantos cantantes como se desee, para ello usa un bucle while que dé opción a elegir al usuario).

https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=632:el-for-extendido-o-bucles-for-each-en-java-ventajas-e-inconvenientes-ejercicio-ejemplo-resuelto-cu00666b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188

Código: [Seleccionar]
// (CU00666B) - El for extendido o bucles for each en Java.
public class TestListaCantantes{
    public static void main (String [] args){
        // Inicio del programa.
        System.out.println("Inicio del programa");
       
        // Crear colección de Lista de cantantes famosos.
        ListaCantantesFamosos listaCantantes = new ListaCantantesFamosos("Cantantes famosos");

        // Agregado de 3 cantantes.
        listaCantantes.addNombre("Madonna");
        listaCantantes.addNombre("Sting");
        listaCantantes.addNombre("Carlos Gardel");

        // Listado de cantantes.
        listaCantantes.listarCantantes();

        String auxRespuesta; // auxiliar a usar para salir del do while.
       
        // Utilizo do while, en vez de while, porque la consigna del ejercicio indica que hay que solicitar al usuario un nuevo ingreso y de este modo se evita una pregunta.
         do {
            // Solicitar un cantante más al usuario.
            listaCantantes.pedirYAgregarUnCantante();
            // Listado de cantantes.
            listaCantantes.listarCantantes();
           
            // Consulta si desea seguir ingresando cantantes.
            System.out.println("¿Desea continuar ingresando cantantes famosos?: (S/N)");
            EntradaDeTeclado entrada1 = new EntradaDeTeclado();
            auxRespuesta = entrada1.getEntrada();
           
        } while (auxRespuesta.equalsIgnoreCase("S"));
    }
}

Código: [Seleccionar]
// (CU00665B) - Clase ArrayList del api Java.
import java.util.ArrayList; // clase utilizada para el uso de ArrayList.

public class ListaCantantesFamosos{
    private String nombreDeLaLista;
    private ArrayList<String> listaCantantesFamosos;
   
    public ListaCantantesFamosos(String nombre){         // Constructor.
        nombreDeLaLista = nombre;
        listaCantantesFamosos = new ArrayList<String>(); // Crea objeto del tipo ArrayList.
    }
   
    // Agregar elemento a la lista.
    public void addNombre (String valor_nombre){listaCantantesFamosos.add(valor_nombre);}
   
    // Getter tamaño de lista.
    public int getTamannoLista (){return listaCantantesFamosos.size();}
   
    //  Getter nombres.
    public String getNombreCantante(int posicion){return listaCantantesFamosos.get(posicion);}
   
    // Listar cantantes, usando un for extendido.
    public void listarCantantes(){
        System.out.println ("La lista ha quedado formada por " + this.getTamannoLista() + " elementos");
        int i = 0;
        for (String nombreCantantes : listaCantantesFamosos){
            System.out.println ("Elemento " + (i+1) + ": " + this.getNombreCantante(i) );
            i++;
        }
    }
   
    public void pedirYAgregarUnCantante(){
            System.out.println("Por favor, ingrese el nombre de un cantante famoso: ");
            EntradaDeTeclado entrada1 = new EntradaDeTeclado();
            this.addNombre(entrada1.getEntrada());       
    }
       
}

Código: [Seleccionar]
import java.util.Scanner;

public class EntradaDeTeclado {
    private String entradaTeclado; //Variable de instancia (campo) de la clase
 
    // Constructor.
    public EntradaDeTeclado ()  {
        entradaTeclado="";
        pedirEntrada(); //Esto es una llamada a un método interno. Al crear un objeto ejecutamos el método
    } //Cierre del constructor
 
    // Función interna de la clase en la que recibe un texto ingresado por teclado del usuario.
    public void pedirEntrada ()  {  //Método de la clase         
        Scanner entradaEscaner = new Scanner (System.in);
        entradaTeclado = entradaEscaner.nextLine ();     }
   
    // Getter, devuelve el texto ingresado.
    public String getEntrada () { return entradaTeclado; }
   
    // Getter devuelve la primer palabra del texto ingresado.
    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;
    }
   
    // Función, devuelve la longitud (en caracteres) del texto ingresado.
    public int getLongitud ()  {  //Método de la clase
        return entradaTeclado.length();
    }
}

7
Dimiste, muchas gracias.

Con respecto a enumerar los ítems de la lista comenzando por el número 1, en vez de 0, estoy totalmente de acuerdo. Son detalles que a veces se pasan por alto y no deberían.

Jamás pensaré que alguien pueda ser un pesado por hacerme correcciones. Por el contrario estoy muy agradecido por el tiempo y generosidad para enseñarnos.

8
Buenas, dejo un ejercicio para quien pueda revisarlo. Es el CU00665B del manual de programación en Java para no expertos. Gracias de antemano. Saludos,

Edu.

Citar
EJERCICIO

Crea una clase denominada ListaCantantesFamosos que al ser inicializada contenga un ArrayList con tres Strings que sean el nombre de cantantes famosos. Crea una clase test con el método main que inicialice un objeto ListaCantantesFamosos, pida dos cantantes famosos más al usuario, los añada a la lista y muestre el contenido de la lista por pantalla.

https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=631:clase-arraylist-del-api-java-metodos-add-size-etc-concepto-de-clase-generica-o-parametrizada-cu00665b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188


Código: [Seleccionar]
public class TestListaCantantes{
    public static void main (String [] args){
        System.out.println("Inicio del programa");
        System.out.println("Por favor, introduzca nombre 1:"); EntradaDeTeclado entrada1 = new EntradaDeTeclado();
        System.out.println("Por favor, introduzca nombre 2:"); EntradaDeTeclado entrada2 = new EntradaDeTeclado();
        System.out.println("Gracias");
       
        ListaCantantesFamosos listaCantantes = new ListaCantantesFamosos("Cantantes famosos");

        // Agregado de 3 cantantes.
        listaCantantes.addNombre("Madonna");
        listaCantantes.addNombre("Sting");
        listaCantantes.addNombre("Carlos Gardel");
       
        // Pedido de dos nombres al usuario.
        listaCantantes.addNombre (entrada1.getEntrada() );
        listaCantantes.addNombre (entrada2.getEntrada() );
       
        System.out.println ("La lista ha quedado formada por " + listaCantantes.getTamañoLista() + " elementos");
        for (int i = 0; i < listaCantantes.getTamañoLista(); i++){
            System.out.println ("Elemento " + i + ": " + listaCantantes.getNombreCantante(i) );
        }
    }
}

Código: [Seleccionar]
// (CU00665B) - Clase ArrayList del api Java.
import java.util.ArrayList;

public class ListaCantantesFamosos{
    private String nombreDeLaLista;
    private ArrayList<String> listaCantantesFamosos;
   
    public ListaCantantesFamosos(String nombre){         // Constructor.
        nombreDeLaLista = nombre;
        listaCantantesFamosos = new ArrayList<String>(); // Crea objeto del tipo ArrayList.
    }
   
    // Agregar elemento a la lista.
    public void addNombre (String valor_nombre){listaCantantesFamosos.add(valor_nombre);}
   
    // Getter tamaño de lista.
    public int getTamañoLista (){return listaCantantesFamosos.size();}
   
    //Getter nombres.
    public String getNombreCantante(int posicion){return listaCantantesFamosos.get(posicion);}
}

Código: [Seleccionar]
import java.util.Scanner;

public class EntradaDeTeclado {
    private String entradaTeclado; //Variable de instancia (campo) de la clase
 
    public EntradaDeTeclado ()  { //Constructor
        entradaTeclado="";
        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 ();     }
 
    public String getEntrada () { return entradaTeclado; }
   
    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;
    }
 
    public int getLongitud ()  {  //Método de la clase
        return entradaTeclado.length();
    }
}

9
Dimiste, buenas tardes!

También he observado que has declarado el método main con la palabra clave "static". Es una cuestión que se explica en la entrega CU00673B de este mismo curso.
Confieso que aun no conozco en detalle la clave "static" sólo la usé porque fue dada como ejemplo durante esta entrega, (CU00658B).

Desde mi punto de vista personal, si utilizas prácticas que aún no están estudiadas sería conveniente explicarlas, más que nada, para que los demás compañeros que no saben lo sepan.
Pido disculpas si pude confundir a alguien, no fue mi intención.
Si bien tiempo atrás he programado en VB6, con Java y programación orientada a objetos sólo desde hace una semana.
No obstante a quien lo deseé con mucho gusto puedo explicar mis ejercicios.

Nuevamente, muchas gracias por tu tiempo y conocimientos. Saludos,
Edu.

10
...Si estás hablando de la condicional en el método setter tendría sentido la condicional, porque al invocar dicho método se podrían poner parámetros "0"...

Dimiste qué tal?

Muchas gracias por tomarte el tiempo para responderme.
Después de leer tu respuesta y algunas entregas del curso me di cuenta a qué se debió mi confusión.
Entiendo que ambas verificaciones para saber si los valores son iguales a 0 son más que necesarias. El problema, o error, de mi parte fue suponer que el método setter sólo es usado en la inicialización de un objeto pero no es así, un setter puede ser utilizado cuantas veces sea necesario durante la "vida" del objeto por lo que el control es necesario.

Nuevamente, muchas gracias! Saludos,
Edu.

11
Buenas, respuestas al cuestionario del ejercicio CU00664B del manual de programación en Java desde cero. Gracias de antemano, saludos,

Edu.


EJERCICIO

Consulta la clase Stack en el API de Java.
¿Cómo se llama el método para consultar el objeto en la cima de la pila?
peek.

¿Cómo se llama el método para consultar si la pila está vacía?
empty.

¿El método pop podríamos clasificarlo como tipo procedimiento, como tipo función, o como tipo mixto (procedimiento y función)?
Mixto.
Procedimiento porque quita el objeto que está en la parte superior de la pila.
Función porque devuelve como valor el objeto removido de la pila.

12
Buenas, voy a intentar responder a las preguntas del ejercicio CU00663B del manual para el aprendizaje de la programación Java desde cero, pero tengo muchas dudas al respecto. Gracias de antemano, saludos.

Edu.

EJERCICIO:
Considera una clase Java que se denomina TripulacionAvion y que tiene como atributos a tres objetos de tipo Persona: Persona piloto; Persona copiloto1; Persona copiloto2.

a) ¿Sería posible que al crear un objeto TripulacionAvion se produjera que piloto, copiloto1 y copiloto2 apuntaran a un mismo objeto, es decir, que existiera una relación de identidad entre los tres atributos?

Supongo que si, si los tres atributos fueran los mismos (la misma persona (objeto))

b) ¿Existiría relación de identidad cuando creemos un objeto TripulacionAvion entre los tres atributos si no se inicializaran en el constructor?

Al crear el objeto se "reservaría" un lugar en memoria pero sin contenido (null) hasta el momento por lo que creo que no existiría relación de identidad.

c) ¿Cuál sería el contenido de los atributos si no se inicializan en el constructor y creamos un objeto de tipo TripulacionAvion?

El contenido sería null.

13
Buenas, dejo la resolución del ejercicio de referencia CU00662B del manual de programación en Java para principiantes. Gracias de antemano. Saludos,

Edu.

Código: [Seleccionar]
// (CU00662B) - El método equals en Java.
import java.util.Scanner;

public class ComparacionLetraALetra{
    public static void main(String [] args){
        // Obtener las dos cadenas a comparar.
        System.out.println("Inicio del programa.");
       
        Scanner entradaEscaner = new Scanner (System.in);
        // Primer cadena a comparar.
        System.out.println("Por favor, ingrese la primer cadena a comparar:");
        String entradaTeclado1 = entradaEscaner.nextLine();
        // Segunda cadena a comparar.
        System.out.println("Por favor, ingrese la segunda cadena a comparar:");
        String entradaTeclado2 = entradaEscaner.nextLine();
       
        // Comparar cadenas.
        for (int i = 1; i <= entradaTeclado1.length() || i <= entradaTeclado2.length(); i++){
            if (i <= entradaTeclado1.length() && i <= entradaTeclado2.length()){
                System.out.println("¿Letra " + i + " igual en las dos palabras? "+ (entradaTeclado1.substring(i-1, i).equals(entradaTeclado2.substring(i-1, i))));
            } else if (entradaTeclado1.length() >= i){
                System.out.println("¿Letra " + i + " igual en las dos palabras? La palabra 2 no tiene letra " + i);
            } else {System.out.println("¿Letra " + i + " igual en las dos palabras? La palabra 1 no tiene letra " + i);}
        }
    }
}

14
Hola Umadara. También veo bien resuelto el ejercicio.

El condicional para forzar el break, en tu código, nunca ocurrirá.

Como bien comentó dimiste, mientras el condicional del while sea cierto (true) seguirán realizándose las instrucciones que escribiste y cuando "i<entradaTeclado.length()" deje de ser afirmativo finalizará.

El segundo condicional sólo ocurrirá cuando sea "i == entradaTeclado.length()" pero por la condición del while la variable i nunca llegará a ese valor.

Saludos,
Edu.

15
Buenas, gracias por adelantado. Propuesta de solución para el ejercicio CU00659B del manual de programación en Java para principiantes. Saludos,

Edu.

Código: [Seleccionar]
// (CU00659B)- While y do while en Java (ciclos o bucles).
import java.util.Scanner;

public class DeletreoDePalabra{
    public static void main(String [] args){
        int i = 1; // variable a usarse como contador durante la evaluación de la cadena.
       
        // Solicitud de una cadena para evaluar.
        System.out.println("Inicio del programa.");
        System.out.println("Por favor, tipee un texto.");
       
        //Obtener cadena.
        Scanner entradaEscaner = new Scanner (System.in);
        String entradaTeclado = entradaEscaner.nextLine();
       
        // Evaluar cadena.
        while (i <= (entradaTeclado.length())){
            // Muestra un renglón con cada una de las letras de la cadena y enumera cada línea.
            System.out.println("Letra " + i + ": " + entradaTeclado.substring(i-1, i));
            i++;
        }
    }
}

16
Hola Umadara, cómo estás?

También veo bien la resolución.

Otra opción: comenzar, en el for, con i=1:

- evitando hacer una cuenta en la línea de salida por cada renglón a imprimir ;)
- facilitando la lectura del código

 (eso si, previa modificación de los parámetros del substring)

Saludos, Edu.

17
Buenas, dejo otro ejercicio, el CU00658B del manual de programación en Java para no expertos. Muchas gracias, saludos.

Edu.

Código: [Seleccionar]
// (CU00658B)- Tipos de bucles Java. Bucle for. Operadores ++ y --.
import java.util.Scanner;

public class DeletreoDePalabra{
    public static void main(String [] args){
        // Solicitud de una cadena para evaluar.
        System.out.println("Inicio del programa.");
        System.out.println("Por favor, tipee un texto.");
       
        //Obtener cadena.
        Scanner entradaEscaner = new Scanner (System.in);
        String entradaTeclado = entradaEscaner.nextLine();
       
        // Evaluar cadena.
        for (int i = 1; i <= (entradaTeclado.length()); i++){
            // Muestra un renglón con cada una de las letras de la cadena y enumera cada línea.
            System.out.println("Letra " + i + ": " + entradaTeclado.substring(i-1, i));
        }
    }
}

18
En forma de comentario nomas se puede usar equalsIgnoreCase("a") también toma igual si es mayúscula y minúscula.

Muchas gracias por el dato, será cuestión de leer y practicar para ir conociendo todos los días un poco más.

19
Hola Umadara, cómo estás?

En primer lugar darte las gracias porque estuve un buen rato buscando el motivo por el cual no funcionaba mi comparación con la primer letra. Miré tu resolución y... compareTo() ;)

Yendo a lo que nos trae, me parece que podrían corregirse algunas cosas en tu código, si me permitís...

1. por lo que leo en el código parece que cuando una cadena recibida en entradaTeclado tenga 15 caracteres de longitud no se hace nada y debería emitirse el mensaje "entre 5 y 15"
2. me parece que cuando utilizás "System.out.println" estás devolviendo la frase en dos renglones y creo que debería ser en uno sólo. Acumulando el texto en una variable String para mostrarla al final de las evaluaciones podría ser un modo.
3. Si bien no es grave, me parece que el código no considera al caracter "A", que también es la letra a como indica en la consigna.

Por último y no se si es más por gusto o por optimizar el código. Cuando unis varios if son una especie de filtro.
Es decir, en el orden que lo presentás, en la segunda condición "if(entradaTeclado.length() >=6 && entradaTeclado.length() <15)" no sería necesario preguntar si el valor es >= a 6 ya que esos valores fueron contemplados en el if anterior ("entradaTeclado.length() <= 5") y no llegarían a esta consulta ;)

Saludos,
Edu.

20
Buenas, otro ejercicio más. El ejercicio CU00657B del tutorial Aprende a programar en Java como si estuvieras en primero ;)

Muchas gracias, saludos.

Edu.

PD: estuve un buen rato mirando por qué "corno" la comparación directa del caracter obtenido con el substring funcionaba correctamente :( Observando la resolución hecha por umadara encontré el compareTo ;) muchas gracias!

Código: [Seleccionar]
// (CU00657B).
import java.util.Scanner;

public class TestPrograma1{
    public static void main(String [] args){
        String cadenaAMostrar = "La cadena introducida tiene ";
       
        // Solicitud de cadena.
        System.out.println("Empezamos el programa.");
        System.out.println("Por favor introduzca una cadena por teclado:");
       
        // Obtener cadena.
        String entradaTeclado = "";
        Scanner entradaEscaner = new Scanner (System.in);
        entradaTeclado = entradaEscaner.nextLine();
       
        // Evaluar cadena.
        // Longitud de la entrada por teclado.
        if (entradaTeclado.length() < 5){
            cadenaAMostrar = cadenaAMostrar + "menos de 5 caracteres y ";}
            else if(entradaTeclado.length() <= 15){cadenaAMostrar = cadenaAMostrar + "entre 5 y 15 caracteres y ";}
            else {cadenaAMostrar = cadenaAMostrar + "más de 15 caracteres y ";}
       
        // Identificar primer caracter de la entrada por teclado.
        if (entradaTeclado.substring(0,1).compareTo("a") == 0 || entradaTeclado.substring(0,1).compareTo("A") == 0){
            cadenaAMostrar = cadenaAMostrar + "comienza por a";}
            else {cadenaAMostrar = cadenaAMostrar + "no comienza por a";}
           
        // Exhibe el resultado.
        System.out.println(entradaTeclado.substring(0,1) + " --- " + cadenaAMostrar);
    }
}

Páginas: [1] 2 3

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