Autor Tema: Ejercicio sobre For extendido en Java con dos puntos : significado CU00666B  (Leído 3840 veces)

Amateu

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 8
    • Ver Perfil
Buenos días, en base al ejercicio anterior del tutorial de programación java he adaptado éste con las dos clases:

Código: [Seleccionar]
/**
 * Ejercicio CU00666B
 * Crea una lista con tres cantantes famosos
 * Clase 1/3
 * Es idéntico al utilizado en CU00665B
 *
 * @author Amateu
 * @version 1
 */
import java.util.ArrayList;


public class ListaCantantesFamosos{
    private ArrayList<String> listadeCantantes; //Declaramos un ArrayList que contiene objetos String
    public ListaCantantesFamosos () {    //Constructor: crea una lista de nombres vacía
        listadeCantantes = new ArrayList<String>(); //Creamos el objeto de tipo ArrayList
        listadeCantantes.add ("LLuis LLach");
        listadeCantantes.add ("Jose Luis Perales");
        listadeCantantes.add ("Manolo Escobar");
    } //Cierre del constructor
    public void addNombre (String valor_nombre) {
        listadeCantantes.add (valor_nombre); } //Cierre del método addNombre
    public String getNombre (int posicion) { //Método
        if (posicion >= 0 && posicion < listadeCantantes.size() ) {
            return listadeCantantes.get(posicion); }
        else { return "No existe nombre de cantante famoso para la posición solicitada";}
    } //Cierre del método getNombre
    public int getTamaño () { return listadeCantantes.size(); } //Cierre del método getTamaño
    public void removeNombre (int posicion) {  //Método
        if (posicion >= 0 && posicion < listadeCantantes.size() ) {
            listadeCantantes.remove(posicion); }
        else { }
    } //Cierre del método removeNombre
    public void listar () {
            int i = 0;
            System.out.println ("Los cantantes en la lista son:");
            for (String nombreCantante : listadeCantantes){   //Este es for extendido
               System.out.println ("Cantante nº " + (i+1) +": " + listadeCantantes.get(i) );
               i++;
            }
    }
} //Cierre de la clase

Código: [Seleccionar]
/**
 * Ejercicio CU00666B
 * Programa main que añade por teclado cantantes a la lista de cantantes famosos
 * Clase 2/3
 *
 * @author Amateu
 * @version 1 */
public class TestListaCantantesFamosos
{
     public static void main (String [ ] args) {

        ListaCantantesFamosos listaCantantes = new ListaCantantesFamosos();
        int j=1;
        while (j>0) {
            listaCantantes.listar();
                       
            System.out.println ("Añada Ud. un nuevo cantante famoso (Sino pulse Enter):");   
            EntradaDeTeclado nuevoCantante = new EntradaDeTeclado();
            j = nuevoCantante.getLongitud();
            listaCantantes.addNombre (nuevoCantante.getEntrada() );
           
        }
   
    } //Cierre del main
}

El for extendido lo he introducido en un método nuevo `listar´ de la clase ListaCantantesFamosos.

« Última modificación: 24 de Abril 2016, 16:39 por Alex Rodríguez »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Re:Ejercicio sobre For extendido. CU00666B
« Respuesta #1 en: 21 de Abril 2016, 08:24 »
Hola Amateu, falta la clase EntradaDeTeclado. Para poder revisar los ejercicios necesitamos todo el código que se haya utilizado para poder compilarlo (incluso aunque se trate del mismo código que se dé en la lección o incluso si se trata del mismo código que se ha utilizado en otro ejercicio previo) de ese modo podemos compilar directamente el mismo código sin tener que recurrir a búsquedas que harían más difícil la revisión y más fácil que hubiera errores o malosentendidos.

Saludos

Amateu

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 8
    • Ver Perfil
Re:Ejercicio sobre For extendido. CU00666B
« Respuesta #2 en: 22 de Abril 2016, 13:37 »
Añado la clase que faltaba

Código: [Seleccionar]
/**
 * Ejercicio CU00666B
 * clase heredada de aprenderaprogramar.com
 * que utiliza el programa main para coger las entradas por teclado
 * Clase 3/3
 *
 * @author aprenderaprogramar.com
 *
 */
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
    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 ();     } //Cierre del método pedirEntrada
    public String getEntrada () { return entradaTeclado; } //Cierre del método getEntrada
    public String getPrimeraPalabra ()  {

        for (int i=0; i < entradaTeclado.length() - 1; i++) {
            if (entradaTeclado.substring (i, i+1).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

y disculpadme otra vez...

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Hola ejercicio bien resuelto. Tu código en el main es breve y efectivo. Como comentario de detalle lee este hilo donde se comenta el uso de índices en bucles for each de java: https://www.aprenderaprogramar.com/foros/index.php?topic=3210.0

Saludos

 

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