Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Amateu en 15 de Abril 2016, 09:06

Título: Ejercicio sobre ArrayList de Java crear una lista de nombres (String) CU00665B
Publicado por: Amateu en 15 de Abril 2016, 09:06
Me he permitido utilizar el método entrada de teclado de la lección. No la incluyo, pero si hace falta la añado. Estas son las otras dos clases que he utilizado

Código: [Seleccionar]
/**
 * Ejercicio CU00665B
 * Crea una lista con tres cantantes famosos
 * Clase 1/3
 *
 * @author Amateu
 * @version 0
 */
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
} //Cierre de la clase

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

        ListaCantantesFamosos listaCantantes = new ListaCantantesFamosos();
         
        System.out.println ("Ud. va a añadir a la lista de Cantantes Famosos dos nombres más.");   
        System.out.println ("Por favor introduzca un nombre de cantante a añadir:");
        EntradaDeTeclado cantante1 = new EntradaDeTeclado();
        System.out.println ("Por favor introduzca otro nombre de cantante:");
        EntradaDeTeclado cantante2 = new EntradaDeTeclado();
        System.out.println ("Gracias");
       
        listaCantantes.addNombre (cantante1.getEntrada() );
        listaCantantes.addNombre (cantante2.getEntrada() );
       
        System.out.println ("La lista ha quedado formada por " + listaCantantes.getTamaño() + " nombres de cantantes:");

        for (int i = 0; i < listaCantantes.getTamaño(); i++){
           System.out.println ("Cantante nº " + (i+1) +": " + listaCantantes.getNombre(i) );
        }
   
    } //Cierre del main
}

Gracias de antemano.
Título: Re:Ejercicio sobre ArrayList de Java. CU00665B
Publicado por: Alex Rodríguez en 21 de Abril 2016, 08:22
Hola Amateu, 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
Título: Re:Ejercicio sobre ArrayList de Java. CU00665B
Publicado por: Amateu en 22 de Abril 2016, 13:34
Añado la clase que faltaba

Código: [Seleccionar]
/**
 * Ejercicio CU00665B
 * 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.
Título: Re:Ejercicio sobre ArrayList de Java crear una lista de nombres (String) CU00665B
Publicado por: Alex Rodríguez en 24 de Abril 2016, 13:32
Hola Amateu el ejercicio está muy bien resuelto.

Recomendamos no usar eñes ni tildes como nombres de métodos o de clases. getTamaño sería getTamanno. Aunque Java lo admita lo recomendamos para no tener problemas a posteriori.

Saludos