Solución propuesta para el ejercicio CU00666B del tutorial pdf de programación Java básico.
package com.aprenderaprogramar;
import java.util.ArrayList;
public class ListaCantantesFamosos2 {
private String nombreUsuario;
private ArrayList<String> listaCantantes = new ArrayList<String>();
public ListaCantantesFamosos2(String pUsuario) {
setNombreUsuario(pUsuario);
listaCantantes.add("Juanes");
listaCantantes.add("Shakira");
listaCantantes.add("Andres Calamaro");
}
public void mostrarLista() {
int i=0;
for(String cantante : listaCantantes) {
System.out.println("Cantante "+ (i+1) +" "+ cantante);
i +=1 ;
}
}
public String getNombreUsuario() {
return nombreUsuario;
}
public void setNombreUsuario(String nombreUsuario) {
this.nombreUsuario = nombreUsuario;
}
public void addCantante(String pCantante) {
listaCantantes.add(pCantante);
}
public String getCantante(int pos) {
return(listaCantantes.get(pos));
}
public int getsize() {
return listaCantantes.size();
}
}
package com.aprenderaprogramar;
public class TestListaCantantesFamosos2 {
public static void main(String[] args) {
boolean addcantante = true;
System.out.println("Por favor introduzca el usuario que crea la lista:");
CadenaEntrada usuario = new CadenaEntrada();
ListaCantantesFamosos2 miLista = new ListaCantantesFamosos2(usuario.getEntrada());
// Salida
miLista.mostrarLista();
while(addcantante) {
System.out.println("ingrese otro cantante: ");
EntradaDeTeclado nuevoCantante = new EntradaDeTeclado();
miLista.addCantante(nuevoCantante.getEntrada());
miLista.mostrarLista();
System.out.println("Desea ingresar mas cantantes: \"no\" para terminar; Cualquier otra tecla para continuar" );
EntradaDeTeclado opcionUsuario = new EntradaDeTeclado();
if(opcionUsuario.getEntrada().equalsIgnoreCase("no")) {
addcantante = false;
System.out.println("Ha terminado de llenar");
}
}
}
}
package com.aprenderaprogramar;
import java.util.Scanner;
public class CadenaEntrada {
private String entrada;
public static void main(String[] args) {
System.out.println("Ingrese primera palabra");
CadenaEntrada entrada1 = new CadenaEntrada();
System.out.println("Ingrese segunda palabra");
CadenaEntrada entrada2 = new CadenaEntrada();
Comparacion(entrada1.getEntrada(), entrada2.getEntrada());
}
public CadenaEntrada() {
pedirEntrada();
}
public void pedirEntrada() {
Scanner entradaTeclado1 = new Scanner(System.in);
setEntrada(entradaTeclado1.nextLine());
}
public static void Comparacion(String pEntrada1, String pEntrada2) {
int maxI, minI, numEntrada, i = 0;
if (pEntrada1.length() > pEntrada2.length()) {
maxI = pEntrada1.length();
minI = pEntrada2.length();
numEntrada = 2;
} else {
maxI = pEntrada2.length();
minI = pEntrada1.length();
numEntrada = 1;
}
while (i < maxI) {
if (i < minI && pEntrada1.substring(i, i + 1).equals(pEntrada2.substring(i, i + 1))) {
System.out.println("¿Letra " + (i + 1) + " igual en las dos palabras? True.");
} else if (i < minI) {
System.out.println("¿Letra " + (i + 1) + " igual en las dos palabras? False.");
} else {
System.out.println("¿Letra " + (i + 1) + " igual en las dos palabras? La palabra " + numEntrada
+ " no tiene letra " + (i + 1));
}
i += 1;
}
}
public String getEntrada() {
return entrada;
}
public void setEntrada(String entrada) {
this.entrada = entrada;
}
}
import java.util.Scanner;
public class EntradaDeTeclado {
private String entradaTeclado;
public EntradaDeTeclado () { //Constructor
entradaTeclado="";
pedirEntrada();
}
public void pedirEntrada () {
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; //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