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 - Jorge lopez

Páginas: 1 ... 6 7 8 9 10 [11] 12 13
201
 :)
public class TesListaCantantesFamosos
Código: [Seleccionar]
import java.util.*;
public class TesListaCantantesFamosos
{
  private static ListaCantantesFamosos lista;
  public TesListaCantantesFamosos()
  {

  }
   
  public static void main(String []args)
  {
     System.out.println(" Hola!\nAyudanos a crear nuestra lista de cantantes famosos\nLa lista inicial contiene los siguientes datos:\n");
     lista = new ListaCantantesFamosos("Madonna", "All I want is you");
     lista.addObjetoCantante("Jorge Negrete", "Jalisco");
     lista.verLaListaCantantesFamososDetallada();
     System.out.println("\nPor favor agrega otro cantante.\n");
     lista.addObjetoCantante(entradaNombre(), entradaDiscoConMasVentas());
     mensajeNotificador();
     lista.verLaListaCantantesFamososDetallada();
     System.out.println("\n¿Deseas introducir los datos de otro cantante (s/n)?");
     String volver = "";
     volver = entrada();
    while(volver.equals("s") || volver.equals("S"))
    {
         System.out.println("\f\nIntroduce los datos del otro cantante.");
         agregarOtroCantanteMas();
         mensajeNotificador();
         lista.verLaListaCantantesFamososDetallada();
         System.out.println("\n¿Te gustaría introducir los datos de otro cantante mas (s/n)?");
         volver = "";
         volver = entrada();
    }
     System.out.println("¿Te gustaría remplazar alguno de los datos existentes en nuestra lista (s/n)?");
     String remplazar = "";
     boolean modificacionEnNombre = false;
     boolean modificacionEnDisco = false;
     remplazar = entrada();
    while(remplazar.equals("s") || remplazar.equals("S"))
    {
      if(remplazar.equals("s") || remplazar.equals("S"))
      {
       System.out.println("\f\nElige el numero relacionado con los datos a remplazar\n");
       lista.verPosicionObjetoYDatosQueContiene();
       String posicion = "";
       posicion = entrada();
       int enteroPosicion = 0;
       enteroPosicion = Integer.parseInt(posicion);
       System.out.println("Deseas remplazar el nombre (s/n)?");
       String opcion = "";
       opcion = entrada();
       if(opcion.equals("s"))
       {
         System.out.println("Introduce el nuevo nombre");
         lista.remplazarCantanteEnObjetoPosicion(enteroPosicion);
         modificacionEnNombre = true;
       }
       System.out.println("Deseas remplazar el disco con mas ventas (s/n)?");
       opcion = entrada();
       if(opcion.equals("s"))
       {
         System.out.println("Introduce el nuevo disco con mas ventas");
         lista.remplazarDiscoConMasVentasEnObjetoPosicion(enteroPosicion);
         modificacionEnDisco = true;
       }
       else if(modificacionEnNombre == false && modificacionEnDisco == false)
       {
         System.out.println("\f\nNo realizaste ninguna modificación!\nEsta es nuestra lista de cantantes famosos:\n");
         lista.verLaListaCantantesFamososDetallada();
       }
       else if(modificacionEnNombre == true && modificacionEnDisco == false || modificacionEnNombre == false && modificacionEnDisco == true)
       {
         System.out.println("\f\nSe ha actualizado la lista exitosamente\nEsta es nuestra lista de cantantes famosos:\n");
         lista.verLaListaCantantesFamososDetallada();
       }
      }
      else
      {   
        System.out.println("\f\nSe ha actualizado la lista exitosamente\nEsta es nuestra lista de cantantes famosos:\n");
        lista.verLaListaCantantesFamososDetallada();
      }

      if(modificacionEnNombre == false && modificacionEnDisco == false)
      {
         System.out.println("\n¿Te gustaria intentar nuevamente remplazar algún otro dato existente en nuestra lista (s/n)?");
         remplazar = entrada();       
      }
      else
      {
         System.out.println("\n¿Te gustaría remplazar algún otro dato existente en nuestra lista (s/n)?");
         remplazar = entrada();
      }
     
      if(remplazar.equals("n") || remplazar.equals("N") && modificacionEnNombre == false && modificacionEnDisco == false)
      {   
         System.out.println("\f\nEsta es nuestra lista de cantantes famosos:\n");
         lista.verLaListaCantantesFamososDetallada();
      }     
      else if(remplazar.equals("n") || remplazar.equals("N") && modificacionEnNombre == true || modificacionEnDisco == true)
      {   
         System.out.println("\f\n Se han realizado las modificaciones de forma exitosa\nEsta es nuestra lista de cantantes famosos actualizada:\n");
         lista.verLaListaCantantesFamososDetallada();
      }         
    }
      System.out.println("\nDeseas eliminar algún cantante de nuestra lista de cantantes famosos (s/n)?");
      String eliminar = "";
      eliminar = entrada();
    while(eliminar.equals("s") || eliminar.equals("S"))
    {
      System.out.println("\f\nElige el numero relacionado al cantante que deseas eliminar de la lista:\n");
      lista.verPosicionObjetoYDatosQueContiene();
      String posicion = "";
      posicion = entrada();
      int enteroPosicion = 0;
      enteroPosicion = Integer.parseInt(posicion);
      System.out.println("\f\n El cantante " +
      lista.obtenerObjetoEnPosicion(enteroPosicion).getNombre() + ", ha sido eliminado exitosamente de la lista.\nEsta es nuestra lista actualizada:\n");
      lista.eliminarCantanteEnPosicion(enteroPosicion);
      lista.verLaListaCantantesFamososDetallada();
      System.out.println("\nDeseas eliminar algún otro cantante de nuestra lista de cantantes famosos (s/n)?");
      eliminar = entrada();
    }
    System.out.println("\f\nEsta es nuestra lista de cantantes famosos:\n");
    lista.verLaListaCantantesFamososDetallada();
    System.out.println("\nGracias por ayudarnos a crear nuestra lista de cantantes famosos\nHasta luego.");
  }
    //Metodos de pocas lineas, para evitar duplicar código en el main.
  private static String entrada()//Crea entradas por teclado
  {
    Scanner escaner = new Scanner(System.in);
    return escaner.nextLine();
  }
   
  private static String entradaNombre()//Crea una entrada personalizada para el campo nombre de un objeto tipo Cantante
  {
    System.out.println("Nombre: ");
    return entrada();
  }
 
  private static String entradaDiscoConMasVentas()//Crea una entrada personalizada para el campo discoConMasVentas de un objeto tipo Cantante
  {
    System.out.println("Disco con mas ventas: ");
    return entrada();
  }
   
  private static void agregarOtroCantanteMas()//Agrega un objeto tipo Cantante a la lista
  {
    lista.addObjetoCantante(entradaNombre(), entradaDiscoConMasVentas());
  }
 
  private static void mensajeNotificador()//Notifica de que se ha agregado x cantante a la lista, exitosamente
  {
    System.out.println("\f\nSe ha actualizado la lista con el cantante " + lista.obtenerObjetoEnPosicion(lista.obtenerSizeDeListaDeCantantesF() - 1).getNombre() +
    ", agregado exitosamente!\nEsta es nuestra nueva lista:\n");   
  }
}
public class ListaCantantesFamosos
Código: [Seleccionar]
import java.util.*;
public class ListaCantantesFamosos
{
    private ArrayList<CantanteFamoso> listaDeCantantesF;
    public ListaCantantesFamosos(String nombre, String discoConMasVentas)
    {
      listaDeCantantesF = new ArrayList<CantanteFamoso>();
      addObjetoCantante(nombre, discoConMasVentas);
    }
   
    public void addObjetoCantante(String nombre, String discoConMasVentas)
    {
      listaDeCantantesF.add(new CantanteFamoso(nombre, discoConMasVentas));
    }
   
    public void verPosicionObjetoYDatosQueContiene()
    {
      int i = 0; 
      for(CantanteFamoso datos : listaDeCantantesF)
      {
        System.out.println(i + ": " + datos.getNombre() + " - " + datos.getDiscoConMasVentas()); i++;
      }
    }
   
    public void verLaListaCantantesFamososDetallada()
    {
      Iterator<CantanteFamoso> copiaDeCantanteFamoso = listaDeCantantesF.iterator();
      CantanteFamoso tmpAnalizando;
      int i = 1;
      while(copiaDeCantanteFamoso.hasNext())
      {
        tmpAnalizando = copiaDeCantanteFamoso.next();
        System.out.println("Cantante " + i + " - " + "Nombre: " + tmpAnalizando.getNombre() + ". Disco con mas ventas: " + tmpAnalizando.getDiscoConMasVentas() + "."); i++;
      }
    }
   
    public  void remplazarCantanteEnObjetoPosicion(int posicion)
    {
      CantanteFamoso objeto;
      objeto = listaDeCantantesF.get(posicion);
      objeto.setNombre();
    }
   
    public  void remplazarDiscoConMasVentasEnObjetoPosicion(int posicion)
    {
      CantanteFamoso objeto;
      objeto = listaDeCantantesF.get(posicion);
      objeto.setDiscoConMasVentas();
    }
   
    public void eliminarCantanteEnPosicion(int posicion)
    {
      listaDeCantantesF.remove(posicion);
    }
   
    public CantanteFamoso obtenerObjetoEnPosicion(int posicion)
    {
      return listaDeCantantesF.get(posicion);
    }
   
    public int obtenerSizeDeListaDeCantantesF()
    {
      return listaDeCantantesF.size();
    }
}
public class CantanteFamoso
Código: [Seleccionar]
import java.util.*;
public class CantanteFamoso
{
    private String nombre, discoConMasVentas;
    public CantanteFamoso(String nombre, String discoConMasVentas)
    {
     this.nombre = nombre;
     this.discoConMasVentas = discoConMasVentas;
    }
    //Metodos setters
    public void setNombre()
    {
     nombre = entrada();
    }
   
    public void setDiscoConMasVentas()
    {
     discoConMasVentas = entrada();
    }
    //Metodos getters
    public String getNombre()
    {
     return nombre;
    }
   
    public String getDiscoConMasVentas()
    {
     return discoConMasVentas;
    }
    //otros metodos
    public String entrada()
    {
      Scanner escaner = new Scanner(System.in);
      return escaner.nextLine();
    }
}
Salu2!

202

Mi mala ortografía es producto de largas conversaciones por whatsapp, twitter, bbm, ect. (redes sociales) donde algunas personas desarrollamos un mal abito de solo escribir sin importar lo escrito mientras se entienda.

La verdad esto me avergüenza, pero acepto la critica como constructiva  ;).

En cuanto al código, he captado la idea de tu comentario con relación a considerar si declarar una variable o no declararla (tampoco inicializarlas ) en una clase basándome en cómo se enfoque la solución al problema. He realizado cambios en el código apoyándome en esta ideología y el código sigue funcionando a la perfección.

Muchísimas gracias por el comentario Cesar.
Salu2!

203
Gracias Alex, tomare en cuenta esos detalles a reforzar!

204
Ojo!!

En ocasiones si nos sera necesario incluir paréntesis dentro de un if(). Un ejemplo seria este:
Código: [Seleccionar]
public class Parentesis
{
 public boolean utilidadDeParentesis()
 {
  if(1+2*3 == 9)
  {
    return true;
  }
  else
  {
    return false;
  }
 }
}

en este código intento decirle a java que si 1+2 = 3 y 3*3 = 9 devuelva true, si se compila el código y se ejecuta el método podremos notar que devuelve false, esto se debe a que java interpreto la sintaxis de una forma distinta a la esperada por mi, java a interpretado: 2*3 = 6 y 1+6 = 7 osea 1+6 = 7, si cambiamos el 9 por un 7 entonces si devolverá true.

La forma correcta para que devuelva true si la operacion es igual a 9 la obtendríamos con la ayuda de unos paréntesis:
Código: [Seleccionar]
public class Parentesis
{
 public boolean utilidadDeParentesis()
 {
  if((1+2)*3 == 9)
  {
    return true;
  }
  else
  {
    return false;
  }
 }
}
y esto se interpreta así: 1+2 = 3 y 3*3 = "9"
java primero calcula lo que este dentro de los paréntesis y luego continua con lo demás.

Te hago este aclarando para que tengas en cuenta que usar los paréntesis es circunstancial y de la circunstancia no requerirlos es preferible mantener un código limpio y no incluirlos.
Salu2!

205
 Hola jorge!
he verificado tu código y se puede decir que cumple con lo pedido por el ejercicio.

puntos a comentar: Siempre que declares variables en una clase, estas se deben declarar como variables privadas de la clase. Ejemp: private String tipo;

Dos puntos a comentar en la siguiente fracción de tu código:

Código: [Seleccionar]
if ((diametro > 1.4 && grosor < 0.4 )|| (diametro <= 1.4 && diametro > 0.8) && (grosor < 0.25))
 System.out.println ("el grosor para esta rueda es inferior al recomendado");

Primero: todos los paracentesis que están dentro del if(...) se podría decir que están de mas, lo que le resta claridad a tu código, pienso que podrías no incluirlos.

Segundo: si te fijas en esta fracción del código luego del if(...) no as incluido las llaves {instrucciones} que se supone contendrán las instrucciones a ejecutar. Aunque el código compila y trabaja sin errores, esto podría ser una mala practica.

he editado esta fracción de tu código y es así como pienso debería lucir:
Código: [Seleccionar]
  if (diametro > 1.4 && grosor < 0.4 || diametro <= 1.4 && diametro > 0.8 && grosor < 0.25){
 System.out.println ("el grosor para esta rueda es inferior al recomendado");
   }
Espero captes la idea.
Salu2!

206
 Hola nestor!
recuerda siempre que escribas código en el foro, pulsar antes la tecla con el símbolo # y a continuación escribir el código en medio de las dos etiquetas que te saldrán
[cod]aqui tu código[/cod].

Por otra parte e verificado el código que as suministrado, y estoy de acuerdo con lo que indicas, al ejecutar el método main en principio te pide introducir la entrada 1 y al pulsar enter salta a otra entrada de teclado sin indicaciones, al pulsar enter luego de estas dos entradas entonces pide introducir la entrada 2 y así sucesivamente hasta completar 6 entradas en lugar de 3 entradas.

Si te fijas las entradas reales, o mas bien las que se están almacenando son las entradas 2, 4 y 6. Las entradas 1, 3 y 5 surgen debido a que en el método main se han creado 3 objetos de tipo EntradaDeTeclado y puesto que en el constructor de la clase EntradaDeTeclado se a inicializado el metodo pedirEntrada(); al crear un objeto de tipo EntradaDeTeclado en el metodo main mediante la sentencia: EntradaDeTeclado entrada1 = new EntradaDeTeclado(); y luego declarar entrada1.pedirEntrada(); lo que esta pasando es que sale por pantalla tanto la entrada que trae el objeto como la entrada que se declara directamente con la sentencia: entradaX.pedirEntrada();

Para corregir esto yo plantearía 2 opciones.

Opción 1: No inicializar el método pedirEntrada(); en el constructor de la clase EntradaDeTeclado.

Opcion 2: Si inicializar el método pedirEntrada(); en el constructor de la clase EntradaDeTeclado, pero no declarar la sentencia entradaX.pedirEntrada(); en el método main.

Ambas opciones corregirían el problema el cual se podría catalogar como un descuido de programación.

Espero a ver aclarado tu duda.

Salu2!

207
 Los operadores  (++ y --) son operadores que nos permiten aumentar o reducir en una unidad el valor de una variable, se pueden declarar antes de la variable (++i) o después de esta (i++) pero esto afecta el comportamiento de incremento o reducción de la variable.

un ejemplo con una fracción de tu código seria el siguiente:
Código: [Seleccionar]
public double multiplicarPorDieces (double m, int n) {

        double resultado = 1;
       
       
        for (int i=1; i<=n; i++) {

            resultado = (resultado *10);           

        }

        return resultado*m;

Porque "n" realiza la potencia??  porque cuando dices i<=n le estas diciendo al bucle for,  que se mantenga realizando ciclos(dando vueltas, rondas, ext.) mientras que "i" sea menor o igual que "n" osea, que  lo que este dentro de las llaves{...} se dejara de realizar cuando "i" sea igual al valor de "n".

 Si "i" tiene un valor inicial de 1, como es que alcanza el valor de "n" que vale 2 ??    aquí es donde entra el ++, en el primer ciclo del bucle for "i" valdría 1 y con la sentencia i++ le decimos que a partir del próximo ciclo comience a sumarle 1 a "i" , si la sentencia fuera ++i se estaría indicando que se le sume 1 a "i" desde el primer ciclo, lo que seria conflictivo en esta situación porque el bucle solo completaría un ciclo y no los 2 ciclos que necesitamos. Si no se incluyera la sentencia i++ en el bucle, tendríamos lo que se conoce como un bucle sin salida o bucle infinito.

Cada ciclo afecta la instrucción que aya dentro de las llaves, en este caso como "i" igualo el valor de "n" que es 2, las instrucciones dentro de las llaves recibieron 2 ciclos.

En el primer ciclo: resultado = (resultado(1)*10) resultado = 10
(resultado toma el valor de 10 para el próximo ciclo).

 En el segundo ciclo: resultado = (resultado(10)*10) resultado = 100. Para la sentencia return resultado*m;  resultado tiene un valor de 100, por tanto 100*2.55 = 255.

en resumen: "i" seria un contador que detiene o da salida a el bucle for  al igualar el valor de "n" (exponente)  y resultado multiplicara por 10 su valor tantas veces como ciclos se realicen.

Espero que lo ayas captado.
Salu2!

208
(Los códigos del ejercicio 00666B están desactivados en modo comentario en cada clase)

public class ListaCantantesFamosos
Código: [Seleccionar]
import java.util.*;
public class ListaCantantesFamosos
{
    private ArrayList<String> lista = new ArrayList<String>();
    public ListaCantantesFamosos()
    {
      lista.add("Drake");
      lista.add("Juan luis guerra");
      lista.add("Tempo");
    }
   
    public void addNombre(String nombreCantante)
    {
      lista.add(nombreCantante);
    }
   
    public void verTodosLosNombresEnLaLista()//esta es una forma rustica de ver los objetos que colecciona el ArrayList<String> lista (alternativa a usar un for each)
    {
      int i = 0;
      do
      {
        System.out.println(lista.get(i)); i++;
      }while(i < lista.size());
    }
   
    public int verSizeDeLaLista()
    {
      return lista.size();
    }
   
    public String verNombreEnLaPosicionIndicada(int posicion)
    {
     return lista.get(posicion);
    }
   
    public void reemplazarNombre(int posicion, String nombre)
    {
      lista.set(posicion, nombre);
    }
   
    public void borrarNombre(int posicion)
    {
      lista.remove(posicion);
    }
}

/*public class ListaCantantesFamosos
{
    private ArrayList<String> lista = new ArrayList<String>();
    public ListaCantantesFamosos()
    {
      lista.add("Drake");
      lista.add("Juan luis guerra");
      lista.add("Tempo");
    }
   
    public void addNombre(String nombreCantante)
    {
      lista.add(nombreCantante);
    }
   
    public ArrayList<String> coleccionDeObjetos()//este método devuelve un objeto tipo ArrayList<String> que contiene una colección de objetos con nombres de cantantes famosos
    {
      return lista;
    }
   
    public int verSizeDeLaLista()
    {
      return lista.size();
    }
   
    public String verNombreEnLaPosicionIndicada(int posicion)
    {
     return lista.get(posicion);
    }
   
    public void reemplazarNombre(int posicion, String nombre)
    {
      lista.set(posicion, nombre);
    }
   
    public void borrarNombre(int posicion)
    {
      lista.remove(posicion);
    }
}*/
public class TesListaCantantesFamosos
Código: [Seleccionar]
import java.util.*;
public class TesListaCantantesFamosos
{
    public TesListaCantantesFamosos()
    {

    }
   
    public static void main(String []args)
    {
      System.out.println(" Hola\nayudanos a completar el top 5 de cantantes famosos de la semana, asta el momento tenemos los siguientes tres cantantes:\n ");
      ListaCantantesFamosos lista1 = new ListaCantantesFamosos();
      lista1.verTodosLosNombresEnLaLista();//que desventajas tendria esta sintaxis: ? System.out.println(lista1.verListadoCompleto());
      System.out.println("\npor favor nombra dos cantantes mas para completar el top 5\nIngresa el 4to cantante");
      Scanner escaner = new Scanner(System.in);
      String cuartoCantante = "";
      cuartoCantante = escaner.nextLine();
      System.out.println("ahora ingresa el 5to cantante");
      String quintoCantante = "";
      quintoCantante = escaner.nextLine();
      lista1.addNombre(cuartoCantante);
      lista1.addNombre(quintoCantante);
      System.out.println("\f\nEste es el top 5 de la semana\n");
      lista1.verTodosLosNombresEnLaLista();
      System.out.println("\nGracias por ayudarnos a completar el top 5 de la semana\nhasta luego!");
     
    }

}

/*public class TesListaCantantesFamosos
{
    public TesListaCantantesFamosos()
    {
   
    }
   
    public static void main(String []args)
    {
      System.out.println(" Hola!\nvamos a crear una lista de cantantes famosos, nosotros ya hemos agregado 3 cantantes a la lista, ahora agrega tu cuantos cantantes quieras.\n");
      ListaCantantesFamosos lista1 = new ListaCantantesFamosos();
      for(String nombre: lista1.coleccionDeObjetos())
      {
        System.out.println(nombre);
      }
      System.out.println("\nintroduce el nombre de otro cantante famoso");
      Scanner escaner = new Scanner(System.in);
      String otroCantante = "";
      otroCantante = escaner.nextLine();
      lista1.addNombre(otroCantante);
      System.out.println("\f\nSe a actualizado la lista con el nombre \"" + otroCantante + "\" añadido en la ultima posicion de la lista con " +
      lista1.verSizeDeLaLista() + " cantantes.");
      for(String nombre: lista1.coleccionDeObjetos())
      {
        System.out.println(nombre);
      }
      System.out.println("\nsi deseas volver a introducir otro cantante famoso a la lista, por favor escribe \"si" + "\" o simplemente preciona \"enter" + "\" para finalizar" );
      String volver = escaner.nextLine();
      while(volver.equals("SI") || volver.equals("si") || volver.equals("Si") || volver.equals("sI"))
      {
        System.out.println("escribe el nombre");
        String otroCantanteMas = escaner.nextLine();
        lista1.addNombre(otroCantanteMas);
        System.out.println("\f\nSe a actualizado la lista con el nombre \"" + otroCantanteMas + "\" añadido en la ultima posicion de la lista con " +
        lista1.verSizeDeLaLista() + " cantantes");
        for(String nombre: lista1.coleccionDeObjetos())
        {
          System.out.println(nombre);
        }
        System.out.println("\nsi deseas volver a introducir otro cantante famoso a la lista, por favor escribe \"si" + "\" o simplemente presiona \"enter" +
        "\" para terminar con la entrada de nombres");
        volver = escaner.nextLine();
      }
      System.out.println("\f\n Se a actualizado la lista!");
      System.out.println("has agregado " + (lista1.verSizeDeLaLista() - 3) +
      " cantantes famosos exitosamente a la lista.\nestos son los " + lista1.verSizeDeLaLista() + " cantantes famosos de nuestra lista:\n");
      int i = 0;
      for(String nombre: lista1.coleccionDeObjetos())
      {
         System.out.println(nombre); i++;
      }
     
      System.out.println("\nsi deseas reemplazar uno de los nombres en la lista, por favor escribe \"si" + "\" o simplemente presiona \"enter" + "\" para terminar de reemplazar");
      String editar = "";
      editar = escaner.nextLine();
      while(editar.equals("SI") || editar.equals("si") || editar.equals("Si") || editar.equals("sI"))
      {
        System.out.println("\f\npor favor escribe el numero relacionado al nombre que deseas reemplazar\n");
        i = 0;
        for(String nombre: lista1.coleccionDeObjetos())
        {
          System.out.println(i + " - " + nombre);  i++;
        }
        String posicion = "";
        posicion = escaner.nextLine();
        int enteroPosicion = Integer.parseInt(posicion);
        System.out.println("ahora escribe el nuevo nombre que reemplazara a " + lista1.verNombreEnLaPosicionIndicada(enteroPosicion));
        String nuevoNombre = "";
        nuevoNombre = escaner.nextLine();
        lista1.reemplazarNombre(enteroPosicion, nuevoNombre);
        System.out.println("\f\nse a actualizado la lista\n");
        for(String nombre: lista1.coleccionDeObjetos())
        {
          System.out.println(nombre);  i++;
        }
        System.out.println("\nsi deseas reemplazar otro de los nombres en la lista, por favor escribe \"si" + "\" o simplemente presiona \"enter" + "\" para terminar de reemplazr");
        editar = "";
        editar = escaner.nextLine();
      }
      System.out.println("si deseas eliminar uno de los nombres en la lista, por favor escribe \"si" + "\" o simplemente presiona \"enter" + "\" para finalizar");
      String eliminar = "";
      eliminar = escaner.nextLine();
      while(eliminar.equals("SI") || eliminar.equals("si") || eliminar.equals("Si") || eliminar.equals("sI"))
      {
        System.out.println("\f\npor favor escribe el numero relacionado al nombre que deseas eliminar\n");
        i = 0;
        for(String nombre: lista1.coleccionDeObjetos())
        {
          System.out.println(i + " - " + nombre); i++;
        }
        String posicion = "";
        posicion = escaner.nextLine();
        int enteroPosicion = Integer.parseInt(posicion);
        System.out.println("\f\nse a eliminado a " + lista1.verNombreEnLaPosicionIndicada(enteroPosicion) + " de la lista\n");
        lista1.borrarNombre(enteroPosicion);
       
        for(String nombre: lista1.coleccionDeObjetos())
        {
          System.out.println(nombre); i++;
        }
        System.out.println("\nsi deseas eliminar otro de los nombres en la lista, por favor escribe \"si" + "\" o simplemente preciona \"enter" + "\" para finalizar");
        eliminar = "";
        eliminar = escaner.nextLine();
      }
      System.out.println("\f\nAsi a quedado nuestra lista:\n");
      i = 1;
      for(String nombre: lista1.coleccionDeObjetos())
      {
        System.out.println("Cantante en la posicion: " + i + " - " + nombre);  i++;
      }     
      System.out.println(" \nGracias por ayudarnos con nuestra lista de cantantes famosos\nhasta luego!");
    }
}*/

Salu2!

209
Aprender a programar desde cero / código replanteado CU00662B
« en: 24 de Julio 2014, 21:31 »
 como ya hubiese yo dicho: aprenderJava = "no es sencillo";  aunque si se cumple la siguiente sintaxis, entonces la cosa seria un poco diferente:

 if(Moderador.equals(CésarKrall) || Moderador.equals
(CualquierOtroDeLosModeradoresDeAprenderAProgramarEnGeneral))
{aprenderJava = "mas sencillo XD";}

Aquí les dejo mi versión 1.3 del ejercicio CU00662B con mejoras basadas en comentarios hechos por CésarKrall (Moderador)

public class EntradaPorTeclado
Código: [Seleccionar]
//Esta clase recibe una entrada de teclado y almacena lo escrito en la variable de tipo String entrada.
 import java.util.Scanner;
public class EntradaPorTeclado
{
  private String entrada;
  public EntradaPorTeclado()
  {
    entrada = "";
    setEntrada();
  }
   
  public void setEntrada()
  {
    Scanner escaner = new Scanner(System.in);
    entrada = escaner.nextLine();
  }
   
  public String getEntrada(){return entrada;}
 
}
public class RectificadorDeEntradaPorTeclado
Código: [Seleccionar]
/*Esta clase resive una entrada de teclado y almacena lo escrito en la variable de tipo String entradaRectificada, siempre que no se indique una cadena vacía (""),
  si no se escribe nada, lo que equivale a una cadena vacía ("") se pedirá rectificar lo escrito mientras se escriba una cadena con caracteres*/
 import java.util.Scanner;
public class RectificadorDeEntradaPorTeclado
{
    private int vacio ;
    private String entradaRectificada;
 
    public RectificadorDeEntradaPorTeclado()
    {
        entradaRectificada = rectificarEntradaPorTeclado();
        vacio = entradaRectificada.length();     
    }
   
    public String rectificarEntradaPorTeclado()
    {
      Scanner escaner = new Scanner(System.in);
      entradaRectificada = escaner.nextLine();   
        if(entradaRectificada.length() == 0)
      {
        do{     
          System.out.println("aun no as escrito nada, por favor introduce una cadena.");
          entradaRectificada = escaner.nextLine();
          vacio = entradaRectificada.length();
        }while(vacio == 0);
      }
      else
      {
       entradaRectificada = entradaRectificada;
      }
      return getEntradaRectificada();
    }
   
    public String getEntradaRectificada(){return entradaRectificada;}
}
public class IdentificadorDeCadenaMasLarga
Código: [Seleccionar]
/*Esta clase recibe dos cadenas e identifica la cadena mas larga en caracteres, para mostrar un mensaje por pantalla indicando cual cadena excede a la otra y por cuantos
 caracteres la excede, en caso de ambas ser de igual longitud, también lo indica en un mensaje por pantalla*/
public class IdentificadorDeCadenaMasLarga
{
   private String cadena1, cadena2;
   private int cadenasConIgualLongitud, cadenaMasLarga, cadenaMasCorta;

   public IdentificadorDeCadenaMasLarga(String valorCadena1, String valorCadena2)
   {
       cadena1 = valorCadena1;
       cadena2 = valorCadena2;
       cadenaMasLarga = 0;
       cadenaMasCorta = 0;
       cadenasConIgualLongitud = 0;
       if(cadena1.length() == cadena2.length())
       {
        cadenasConIgualLongitud = cadena1.length();
       }
       else
       {
       
       }
       
       if(cadena1.length() > cadena2.length())
       {
         cadenaMasLarga = cadena1.length();
       }
       else
       {
         cadenaMasLarga = cadena2.length();
       }
       
       if(cadena1.length() < cadena2.length())
       {
         cadenaMasCorta = cadena1.length();
       }
       else
       {
         cadenaMasCorta = cadena2.length();
       }
   }
   
   public void identificarCualCadenaExcedeALaOtra()
   {
      if(cadena1.length() == cadena2.length())
      {
        System.out.println("\nAmbas cadenas constan de " + cadenasConIgualLongitud + " caracteres.\n"); 
      }
      else if(cadena1.length() > cadena2.length())
      {
        System.out.println("La primera cadena excede por " + (cadenaMasLarga - cadenaMasCorta) +
        " caracteres a la segunda cadena.");
      }
      else if(cadena1.length() < cadena2.length())
      {
        System.out.println("La segunda cadena excede por " + (cadenaMasLarga - cadenaMasCorta) +
        " caracteres a la primera cadena.");
      }
   }
}
public class ComparadorDeCaracteres
Código: [Seleccionar]
/* Esta clase recibe dos cadenas para hacer una comparación carácter a carácter entre estas dos, y muestra por pantalla cuantos caracteres se compararon, y el resultado
 * de la comparación indicando la igualdad o desigualdad entre cada carácter y carácter comparado.*/
public class ComparadorDeCaracteres
{   private int i, cadenaMasCorta;
    private String cadena1, cadena2;
    public ComparadorDeCaracteres(String valorCadena1, String valorCadena2)
    {
      i = 0;
      cadenaMasCorta = 0;
      cadena1 = valorCadena1;
      cadena2 = valorCadena2;
      if(cadena1.length() < cadena2.length())
      {
        cadenaMasCorta = cadena1.length();
      }
      else if(cadena2.length() < cadena1.length())
      {
        cadenaMasCorta = cadena2.length(); 
      }
      else if(cadena1.length() == cadena2.length())
      {
        cadenaMasCorta = cadena1.length(); 
      }
    }
   
      public void CompararCaracterPorCaracter()
    {
      if(cadena1.length() == cadena2.length() || cadena2.length() == cadena1.length())
      {
        System.out.println("Se han comparado los " +
        cadena1.length() + " caracteres de cada cadena:");
      }     
      else if(cadena1.length() > cadena2.length())
      {
        System.out.println("\nPuesto que la primera cadena excede la longitud de la segunda cadena, solo se han comparado los " +
        cadena2.length() + " primeros caracteres de cada cadena:");
      }     
      else if(cadena2.length() > cadena1.length())
      {
        System.out.println("\nPuesto que la segunda cadena excede la longitud de la primera cadena, solo se han comparado los " +
        cadena1.length() + " primeros caracteres de cada cadena:");
      }
     
      if(cadena1.equals(cadena2))
      {
        System.out.println("\nHas escrito dos cadenas idénticas, por tanto  la comparación entre los " + cadena1.length() +
        " caracteres de cada cadena dice que SI son iguales para cada carácter por carácter comparado entre las dos cadenas.");
      } 
       else if(cadena1 != cadena2)
      {
        do
        {
          if(cadena1.substring(i,i+1).equals(cadena2.substring(i,i+1)))
          {
           System.out.println("\nEs el caracter " + (i+1) + " igual en las dos cadenas? SI");
          }
          else
          {
           System.out.println("\nEs el caracter " + (i+1) + " igual en las dos cadenas? NO");
          }
           System.out.println("\b" + cadena1.substring(i,i+1) + " " + cadena2.substring(i,i+1)); i++;
         }    while((i+1) < cadenaMasCorta + 1);
      }
    }
}
public class AnalizadorDeCaracteresSobrantes
Código: [Seleccionar]
//Esta clase recibe dos cadenas, analiza los caracteres sobrantes de la cadena mas larga en comparación con la cadena mas corta, los extrae y los muestra en un mensaje por pantalla.
public class AnalizadorDeCaracteresSobrantes
{
    private int i;
    private String cadena1, cadena2;
    public AnalizadorDeCaracteresSobrantes(String valorCadena1, String valorCadena2)
    {
       i = 0;
       cadena1 = valorCadena1;
       cadena2 = valorCadena2;
    }
   
    public void ExtractorDeCaracteresSobrantes()
    {
       if(cadena1.length() > cadena2.length())
       {
         do
         {
           System.out.println("\bCaracter " + (cadena2.length() + (i+1)) + ": " + cadena1.substring(cadena2.length() + i, cadena2.length() + (i+1))); i++;
         }
         while((cadena2.length() + (i+1)) < cadena1.length() + 1);
       }
       else if(cadena1.length() < cadena2.length())
       {
         do
         {
           System.out.println("\bCaracter " + (cadena1.length() + (i+1)) + ": " + cadena2.substring(cadena1.length() + i, cadena1.length() + (i+1))); i++;
         }
         while((cadena1.length() + (i+1)) < cadena2.length() + 1);
       }
    }
}
public class AnalizadorDeVocales
Código: [Seleccionar]
/*Esta clase recibe una cadena, analiza las vocales existentes en esta, las extrae y las muestra en un mensaje por pantalla, en caso de la cadena no tener ninguna vocal, también
 lo indica en un mensaje por pantalla.*/
public class AnalizadorDeVocales
{
    private String cadena;
    private int i, vocal;
    public AnalizadorDeVocales(String valorCadena)
    {
       cadena = valorCadena;
       i = 0;
       vocal = 1;
    }


    public void extractorDeVocales()
    {
       while( i < cadena.length())
       {
          if(cadena.substring(i,(i+1)).equals("a") || cadena.substring(i,(i+1)).equals("e") || 
             cadena.substring(i,(i+1)).equals("i") || cadena.substring(i,(i+1)).equals("o") ||   
             cadena.substring(i,(i+1)).equals("u") || cadena.substring(i,(i+1)).equals("A") ||
             cadena.substring(i,(i+1)).equals("E") || cadena.substring(i,(i+1)).equals("I") ||
             cadena.substring(i,(i+1)).equals("O") || cadena.substring(i,(i+1)).equals("U"))
         {
          System.out.println("\bVocal " + vocal++ + ": " + cadena.substring(i,(i+1)));
         }   i++;
       }
       
       if(vocal++ == 1)
       {
         System.out.println("\bno se han detectado vocales en esta cadena.");
       }
    }
}
public class ComparadorDeCadenas (clase con método main)
Código: [Seleccionar]
// Esta clase con el método main, usa otras clases para recibir dos cadenas y mostrar por pantalla el resultado de la comparación entre estas dos cadenas.
public class ComparadorDeCadenas //clase con método main
{
   //nada que declarar.
   public ComparadorDeCadenas()
   {
     //nada que declarar.
   }

   public static void main(String []args)
   {
      String  entrada1 = "", entrada2 = "", volver = "";
      System.out.println
      ("\bHola\nvamos a hacer una comparación carácter por carácter entre dos cadenas, para así determinar la igualdad o desigualdad entre sus caracteres.\n");
      do
      {
        System.out.println("Por favor introduce la primera cadena");
        entrada1 = entradaDeTeclado();
        if(entrada1.length() == 0)
        {
          System.out.println("Disculpa, pero no as escrito nada, por favor introduce la primera cadena.");       
          entrada1 = rectificadorDeEntradaDeTeclado(); 
        }
        System.out.println("ahora introduce la segunda cadena ");
        entrada2 = entradaDeTeclado();
        if(entrada2.length() == 0)
        {
          System.out.println("Disculpa, pero no as escrito nada, por favor introduce la segunda cadena.");       
          entrada2 = rectificadorDeEntradaDeTeclado(); 
        }
        System.out.println("\n\b\fResultados:\nPrimera cadena: " + entrada1 + "\nSegunda cadena: " + entrada2 + "\n");
        IdentificadorDeCadenaMasLarga entradaExcedente = new IdentificadorDeCadenaMasLarga(entrada1, entrada2);
        entradaExcedente.identificarCualCadenaExcedeALaOtra();
     
        ComparadorDeCaracteres comparar = new ComparadorDeCaracteres(entrada1, entrada2);
        comparar.CompararCaracterPorCaracter();
        if(entrada1.length() > entrada2.length())
        {
          System.out.println("\nEstos son los caracteres sobrantes de la primera cadena: ");
        }
        else if(entrada2.length() > entrada1.length())
        {
          System.out.println("\nEstos son los caracteres sobrantes de la segunda cadena: ");
        }
        AnalizadorDeCaracteresSobrantes caracteresSobrantes = new AnalizadorDeCaracteresSobrantes(entrada1, entrada2);
        caracteresSobrantes.ExtractorDeCaracteresSobrantes();
        System.out.println("\nEstas son las vocales detectadas en la primera cadena, enumeradas por orden de aparición:");
        AnalizadorDeVocales vocalesEntrada1 = new AnalizadorDeVocales(entrada1);
        vocalesEntrada1.extractorDeVocales();
        System.out.println("\nEstas son las vocales detectadas en la segunda cadena, enumeradas por orden de aparición:");
        AnalizadorDeVocales vocalesEntrada2 = new AnalizadorDeVocales(entrada2);
        vocalesEntrada2.extractorDeVocales();
        System.out.println("\nNota: (Esta comparación diferencia MAYÚSCULAS de minúsculas)\nSi deseas volver a comparar dos cadenas escribe \"" +
        "si\" o simplemente presiona enter para finalizar.\n");
        volver = entradaDeTeclado();
      }while(volver.equals("si") || volver.equals("Si") || volver.equals("SI") || volver.equals("sI"));
      System.out.println("Gracias por comparar cadenas\nhasta luego! ");
   }
   /*estos métodos son de pocas lineas, pero al utilizarlos con frecuencia preferí hacerlos independientes y no escribirlos cada vez directamente en el método main.*/
   
   //método entradaDeTeclado(); crea una entrada de teclado para que el usuario escriba lo que desee o necesite escribir, y almacena lo escrito en la variable String entrada.
   private static String entradaDeTeclado()
   {
      EntradaPorTeclado entrada = new EntradaPorTeclado();
      return entrada.getEntrada();
   }
   /**/
   //metodo rectificadorDeEntradaDeTeclado(); supervisa que la entradaDeTeclado(); no sea una cadena vacía ("") y de ser así deniega la acción dando la opción de volver a escribir.
   private static String rectificadorDeEntradaDeTeclado()
   {
      RectificadorDeEntradaPorTeclado rectificar = new RectificadorDeEntradaPorTeclado();
      return rectificar.getEntradaRectificada();
   }

}

Salu2!

210
 Quien dijo que aprender java seria una tarea sencilla??
se necesita de mucha perseverancia y esfuerzo.

a continuación replanteo mi código, mejorado a partir de los puntos y consejos señalados por Cesar (Moderador)

ComparadorDeCadenas
Código: [Seleccionar]
public class ComparadorDeCadenas{
   private static String cadena = "", entrada1 = "", entrada2 = "", volver = "";
   private static boolean vacio = false;
   public ComparadorDeCadenas(){
       
       
    }
   
    public static void main(String []args){
      System.out.println("Hola! \nbamos a comparar dos cadenas carácter por carácter. \n"); 
      do{     
      manejadorDeEntradas();
      System.out.println("este es el resultado de la comparación entre las dos cadenas que has escrito: \n");
      comparandoCaracteres();
      entradaMasLarga();
      if(entrada1.length() == entrada2.length())
        {System.out.println("\n\tambas cadenas constan de " + entrada1.length() + " caracteres.");}
      else if(entrada1.length() > entrada2.length()){System.out.println("\nestos son los caracteres sobrantes de la primera cadena:"); sobran();}
      else if(entrada1.length() < entrada2.length())
        {System.out.println("\nestos son los caracteres sobrantes de la segunda cadena:"); sobran();
      }
      System.out.println("\nEstas son las vocales detectadas en la primera cadena, enumeradas por orden de aparición:");
      vocales1();
      System.out.println("\nEstas son las vocales detectadas en la segunda cadena, enumeradas por orden de aparición:");
      vocales2();
     
      System.out.println("\nSi deseas volver a comparar dos cadenas presiona cualquier tecla, o simplemente presiona la tecla enter para finalizar.");
      volver = entradaDeCadena();
     }while(volver.length() > 0);
      System.out.println("Gracias por comparar cadenas \nHasta luego.");
   }
   
   private static String entradaDeCadena(){
        EntradaPorTeclado entrada = new EntradaPorTeclado();
        return entrada.getEntrada();
    }
   
   private static void manejadorDeEntradas(){
      do {
            System.out.println ("Por favor, introduce la primera cadena.");
            cadena = entradaDeCadena();
            if (cadena.length() == 0) {
                vacio = true;
                System.out.println ("Disculpa, pero no as escrito nada.");
            } else {
                entrada1 = cadena;
                vacio = false;
            }
        } while (vacio);
       
      do {
            System.out.println ("Por favor, introduce la segunda cadena.");
            cadena = entradaDeCadena();
            if (cadena.length() == 0) {
                vacio = true;
                System.out.println ("Disculpa, pero no as escrito nada.");
            } else {
                entrada2 = cadena;
                vacio = false;
            }
        } while (vacio);
    }
   
   private static void comparandoCaracteres(){
    ComparadorDeCaracteres comparando = new ComparadorDeCaracteres(entrada1, entrada2);
    comparando.comparando();
    }
   
   private static void entradaMasLarga(){
    DetectorDeCadenaMasLarga masLarga = new DetectorDeCadenaMasLarga(entrada1, entrada2);
    masLarga.detectando();
    }
   
   private static void sobran(){
    AnalizadorDeCaracteresSobrantes sobrantes = new AnalizadorDeCaracteresSobrantes(entrada1, entrada2);
    sobrantes.extractorDeCaracteresSobrantes();
    }
   
   private static void vocales1(){
    AnalizadorVocalesCadena1 cadena1 = new AnalizadorVocalesCadena1(entrada1);
    cadena1.extractorDeVocales();
    }
   
   private static void vocales2(){
    AnalizadorVocalesCadena2 cadena2 = new AnalizadorVocalesCadena2(entrada2);
    cadena2.extractorDeVocales();
    }
   //gette
   public static String getEntrada1(){return entrada1;}
   
   public static String getEntrada2(){return entrada2;}
}
EntradaPorTeclado
Código: [Seleccionar]
import java.util.Scanner;
public class EntradaPorTeclado{
     private String entrada;
   public EntradaPorTeclado(){
        entrada = "";
        entradaTeclado();
      }
   
   public void entradaTeclado(){
       Scanner escaner = new Scanner(System.in);
       entrada = escaner.nextLine();
      }
   
   public String getEntrada(){return entrada;}
   
   public int getLongitudEntrada(){return entrada.length();}
 }
ComparadorDeCaracteres
Código: [Seleccionar]
public class ComparadorDeCaracteres{
   private int i, entradaMasCorta;
   private String entrada1, entrada2;
  public ComparadorDeCaracteres(String valorEntrada1, String valorEntrada2){
      i = 0;
      entradaMasCorta = 0;
      entrada1 = valorEntrada1;
      entrada2 = valorEntrada2;
    }
   
  public void comparando(){
     if(entrada1.length() < entrada2.length())
         {entradaMasCorta = entrada1.length();
     }
     else if(entrada1.length() > entrada2.length())
         {entradaMasCorta = entrada2.length();       
     }
     else if(entrada1.length() == entrada2.length())
         {entradaMasCorta = entrada1.length();
     }
     
     do{
        System.out.print("\t¿Es el carácter " + (i+1) + " igual en las dos cadenas? ");
        if(entrada1.substring(i,(i+1)).equals(entrada2.substring(i,(i+1))))
          {System.out.print(" Si. En la primera cadena  \"" + entrada1.substring(i,(i+1)) + "\"" + "  " + "\"" + entrada2.substring(i,(i+1)) + "\"" + " en la segunda cadena\n");}
        else
          {System.out.print(" No. En la primera cadena  \"" + entrada1.substring(i,(i+1)) + "\"" + "  " + "\"" + entrada2.substring(i,(i+1)) + "\"" + " en la segunda cadena\n");
                                              } i++;                                 
        }while( i < entradaMasCorta);
     

    }
    //getters
  public int getI(){return i;}
 
  public int getEntradaMasCorta(){return entradaMasCorta;}
 
  public String getEntrada1(){return entrada1;}
 
  public String getEntrada2(){return entrada2;}
}
DetectorDeCadenaMasLarga
Código: [Seleccionar]
public class DetectorDeCadenaMasLarga{
 private int cadenaMasLarga, cadenaMasCorta;
 private String cadena1, cadena2;
 
 public DetectorDeCadenaMasLarga(String valorCadena1, String valorCadena2){
     cadena1 = valorCadena1;
     cadena2 = valorCadena2;
          if(cadena1.length() > cadena2.length())
         {cadenaMasLarga = cadena1.length();}
     else
         {cadenaMasLarga = cadena2.length();
     }
     
     if(cadena1.length() < cadena2.length())
         {cadenaMasCorta = cadena1.length();}
     else
         {cadenaMasCorta = cadena2.length();
     }
    }
   
 public void detectando(){
         if(cadena1.length() > cadena2.length())
      {System.out.println("\nLa primera cadena excede por " + (cadena1.length() - cadena2.length()) + " caracteres " +
        " a la segunda cadena, por tanto solo se compararon los primeros " + cadenaMasCorta + " caracteres de cada cadena. \n");
     }
     else if(cadena2.length() > cadena1.length())
      {System.out.println("\nLa segunda cadena excede por " + (cadena2.length() - cadena1.length()) + " caracteres " +
        " a la primera cadena, por tanto solo se compararon los primeros " + cadenaMasCorta + " caracteres de cada cadena. \n");
     }   
    }

}
AnalizadorDeCaracteresSobrantes
Código: [Seleccionar]
public class AnalizadorDeCaracteresSobrantes{
    private String sobrantes, cadena1, cadena2;
    private int i;
    public AnalizadorDeCaracteresSobrantes(String valorCadena1, String valorCadena2){
        sobrantes = "";
        cadena1 = valorCadena1;
        cadena2 = valorCadena2;
        int i = 0;
    }
   
    public void extractorDeCaracteresSobrantes(){
       if      (cadena1.length() > cadena2.length())
          {sobrantes = cadena1.substring(cadena2.length(),cadena1.length()); 
        }
        else if(cadena1.length() < cadena2.length())
          {sobrantes = cadena2.substring(cadena1.length(),cadena2.length());
        }
       
       if(cadena1.length() > cadena2.length())
        {
         while(i < sobrantes.length()){System.out.println("\tCaracter " + (i+cadena2.length()+1) + ": " + sobrantes.substring(i,(i+1))); i++;}
        }
       else if(cadena2.length() > cadena1.length())
        {
         while(i < sobrantes.length()){System.out.println("\tCaracter " + (i+cadena1.length()+1) + ": " + sobrantes.substring(i,(i+1))); i++;}
       }
    }
   
    public String getSobrantes(){return sobrantes;}
    }
AnalizadorVocalesCadena1
Código: [Seleccionar]
public class AnalizadorVocalesCadena1{
    private int vocales, i;
    private String cadena1;
   public AnalizadorVocalesCadena1(String valorCadena1){
      vocales = 1;
      i = 0;
      cadena1 = valorCadena1;
    }
   
   public void extractorDeVocales(){
       while(i < cadena1.length()){
         if(cadena1.substring(i,(i+1)).equals("a") || cadena1.substring(i,(i+1)).equals("e") ||
         cadena1.substring(i,(i+1)).equals("i") ||
          cadena1.substring(i,(i+1)).equals("o") || cadena1.substring(i,(i+1)).equals("u")){
             System.out.println("\tvocal " + vocales++ + " :" + cadena1.substring(i,(i+1)));}  i++;
      }
      if(vocales == 1){System.out.println("\t\"" + "ninguna vocal detectada en la primera cadena" + "\"");}
    }
   //getters
   public int getTotalVocalesCadena1(){return vocales;}
   
   public int getI(){return i;}
   
   public String getVocalesCadena1(){return cadena1;}
}
AnalizadorVocalesCadena2
Código: [Seleccionar]
public class AnalizadorVocalesCadena2{
    private int vocales, i;
    private String cadena2;
   public AnalizadorVocalesCadena2(String valorCadena2){
      vocales = 1;
      i = 0;
      cadena2 = valorCadena2;
    }
   
   public void extractorDeVocales(){
       while(i < cadena2.length()){
         if(cadena2.substring(i,(i+1)).equals("a") || cadena2.substring(i,(i+1)).equals("e") ||
         cadena2.substring(i,(i+1)).equals("i") ||
          cadena2.substring(i,(i+1)).equals("o") || cadena2.substring(i,(i+1)).equals("u")){
             System.out.println("\tvocal " + vocales++ + " :" + cadena2.substring(i,(i+1)));}  i++;
      }
      if(vocales == 1){System.out.println("\t\"" + "ninguna vocal detectada en la segunda cadena" + "\"");}
    }
   
   public int getTotalVocalesCadena1(){return vocales;}
   
   public int getI(){return i;}
   
   public String getVocalesCadena1(){return cadena2;}
}

 algo de lo bastante  que aprendí mejorando este código es que el hecho de que un código compile y cumpla su cometido, no define exactamente el buen diseño del código y que debemos optar por un buen diseño.
Salu2!

211
  Hola!
he creado un programa al que llamo: ComparandoCadenas, el cual fue creado a partir de las peticiones indicadas por este ejercicio, he comenzado a crear mis programas bajo la filosofía de orientación a objetos, por lo cual e creado 5 clases diferentes que definen objetos y los utilizan entre si, mas una sexta clase que incluye el método main y utiliza objetos de cada una de las otras 5 clases para el completo funcionamiento del "programa"

a continuación el código de cada clase:

EntradaPorTeclado
esta clase pide al usuario que introduzca 2 cadenas de caracteres y almacena cada cadena en una variable tipo String
Código: [Seleccionar]
import java.util.Scanner;
public class EntradaPorTeclado{
   public static String entrada1;
   public static String entrada2;
   public EntradaPorTeclado(){
        System.out.println("Por favor introduzca la primera cadena.");
        Scanner escaner = new Scanner(System.in);
        entrada1 = "";
        entrada2 = "";
        entrada1 = escaner.nextLine();
        System.out.println("ahora introduzca la segunda cadena.");
        entrada2 = escaner.nextLine();
    }
   public String getEntrada1(){return entrada1;}
   public String getEntrada2(){return entrada2;}
}
ComparandoCaracterXCaracter
esta clase usa las variables de la clase EntradaPorTeclado que almacenan lo que  ha escrito el usuario para asi realizar una comparacion de caracteres entre las dos cadenas.
Código: [Seleccionar]
public class ComparandoCaracterXCaracter{
   private String comparandoEntrada1, comparandoEntrada2;
  public ComparandoCaracterXCaracter(){
     System.out.println("Gracias \nEste es el resultdo de la comparacion entre las dos cadenas que as introducido: \n");
     comparandoEntrada1 = EntradaPorTeclado.entrada1;
     comparandoEntrada2 = EntradaPorTeclado.entrada2;
     int i = 0;
     int entradaMasLarga = 0;
     int entradaMasCorta = 0;
     if(comparandoEntrada1.length() > comparandoEntrada2.length())
         {entradaMasLarga = comparandoEntrada1.length();}
     else
         {entradaMasLarga = comparandoEntrada2.length();
     }
     
     if(comparandoEntrada1.length() < comparandoEntrada2.length())
         {entradaMasCorta = comparandoEntrada1.length();}
     else
         {entradaMasCorta = comparandoEntrada2.length();
     }
     
     do{
        System.out.print("¿Es el caracter " + (i+1) + " igual en las dos cadenas? ");
        if(comparandoEntrada1.substring(i,(i+1)).equals(comparandoEntrada2.substring(i,(i+1))))
            {System.out.print(" Si\n");}
        else
            {System.out.print(" No\n");
                                              } i++;                                 
        }while( i < entradaMasCorta);
     
        if(comparandoEntrada1.length() > comparandoEntrada2.length())
      {System.out.println("\nLa primera cadena excede por " + (comparandoEntrada1.length() - comparandoEntrada2.length()) + " caracteres " +
        " a la segunda cadena, por tanto solo se compararon los primeros " + entradaMasCorta + " caracteres de cada cadena. \n");
     }
     else if(comparandoEntrada2.length() > comparandoEntrada1.length())
      {System.out.println("\nLa segunda cadena excede por " + (comparandoEntrada2.length() - comparandoEntrada1.length()) + " caracteres " +
        " a la primera cadena, por tanto solo se compararon los primeros " + entradaMasCorta + " caracteres de cada cadena. \n");
     }
    }
}
CaracteresSobrantes
esta clase usa la clase EntradaPorTeclado para calcular cuales son los caracteres de la cadena mas larga, que sobran y no se comparan.
Código: [Seleccionar]
public class CaracteresSobrantes{
    private String entrada1Sobrantes, entrada2Sobrantes;
    public CaracteresSobrantes(){
        entrada1Sobrantes = EntradaPorTeclado.entrada1;
        entrada2Sobrantes = EntradaPorTeclado.entrada2;
        String sobrantes = "";
        int i = 0;
       if      (entrada1Sobrantes.length() > entrada2Sobrantes.length())
          {sobrantes = entrada1Sobrantes.substring(entrada2Sobrantes.length(),entrada1Sobrantes.length()); 
        }
        else if(entrada2Sobrantes.length() > entrada1Sobrantes.length())
          {sobrantes = entrada2Sobrantes.substring(entrada1Sobrantes.length(),entrada2Sobrantes.length());
        }
       
       if(entrada1Sobrantes.length() > entrada2Sobrantes.length())
        {System.out.println("Los caracteres sobrantes de la primera cadena son: \n");
         while(i < sobrantes.length()){System.out.println("Caracter " + (i+entrada2Sobrantes.length()+1) + ": " + sobrantes.substring(i,(i+1))); i++;}
        }
       
       else if(entrada2Sobrantes.length() > entrada1Sobrantes.length())
        {System.out.println("Los caracteres sobrantes de la segunda cadena son: \n");
         while(i < sobrantes.length()){System.out.println("Caracter " + (i+entrada1Sobrantes.length()+1) + ": " + sobrantes.substring(i,(i+1))); i++;}
       }
    }
    }
VocalesCadena1
esta clase usa a la clase EntradaPorTeclado para detectar las vocales que se encuentren en la primera cadena
Código: [Seleccionar]
public class VocalesCadena1{
   private String compuesto1;
   public VocalesCadena1(){
      compuesto1 = EntradaPorTeclado.entrada1;
       int vocales = 1;
       int i = 0;
      System.out.println("\nEstas son las vocales detectadas en la primera cadena, enumeradas por orden de aparicion:");
       while(i < compuesto1.length()){
         if(compuesto1.substring(i,(i+1)).equals("a") || compuesto1.substring(i,(i+1)).equals("e") || compuesto1.substring(i,(i+1)).equals("i") ||
          compuesto1.substring(i,(i+1)).equals("o") || compuesto1.substring(i,(i+1)).equals("u")){
             System.out.println("vocal " + vocales++ + " :" + compuesto1.substring(i,(i+1)));}  i++;
      }
      if(vocales == 1){System.out.println("\"" + "ninguna vocal detectada en la primera cadena" + "\".\n");}
    }
}
VocalesCadena2
esta clase usa a la clase EntradaPorTeclado para detectar las vocales que se encuentren en la segunda cadena
Código: [Seleccionar]
public class VocalesCadena2{
    private String compuesto2;
      public  VocalesCadena2(){
       compuesto2 = EntradaPorTeclado.entrada2;
       int vocales = 1;
       int i = 0;
       System.out.println("Estas son las vocales detectadas en la segunda cadena, enumeradas por orden de aparicion:");
        while(i < compuesto2.length()){
         if(compuesto2.substring(i,(i+1)).equals("a") || compuesto2.substring(i,(i+1)).equals("e") || compuesto2.substring(i,(i+1)).equals("i") ||
          compuesto2.substring(i,(i+1)).equals("o") || compuesto2.substring(i,(i+1)).equals("u")){
             System.out.println("vocal " + vocales++ + " :" + compuesto2.substring(i,(i+1)));}  i++;
       }
       if(vocales == 1){System.out.println("\"" + "ninguna vocal detectada en la segunda cadena" + "\".\n");}
    }
}
ComparandoCadenas esta clase contiene el método main y se encarga de:
1ro saluda al usuario y le recuerda para que sirve el programa.
2do crea objetos de cada una de las otras 5 clases y ejecuta sus métodos en el orden que se definan en esta clase.
y 3ro se despide del usuario.
Código: [Seleccionar]
public class ComparandoCadenas{
     //nada que declarar
    public static void main(String []args){
      System.out.println("Hola! \nbamos a comparar dos cadenas caracter por caracter.");
      EntradaPorTeclado entrada = new EntradaPorTeclado();
      ComparandoCaracterXCaracter caracter = new ComparandoCaracterXCaracter();
      CaracteresSobrantes sobrantes = new CaracteresSobrantes();
      VocalesCadena1 compuesto1 = new VocalesCadena1();
      VocalesCadena2 compuesto2 = new VocalesCadena2();
      System.out.println("Gracias por comparar cadenas \nHasta luego \n@SniperOfElite, follow me on #Twitter (#^_^#).");

   }
}
Espero sus criticas constructivas para mejorar mi programa y mi calidad de "programador"
Salu2!

212
 Muchas gracias javi!
a continuacion 2 codigos replanteados tomando en cuenta tus consejos.
Bucle while
Código: [Seleccionar]
import java.util.Scanner;
public class BucleWhile{
  public static void main(String []args){
    System.out.println("Hola. \nIntroduce un texto para asi enumerar cada caracter en una columna.");
    Scanner escaner = new Scanner(System.in);
    String entrada = "";
    entrada = escaner.nextLine();
    int i = 0;
    while(i < entrada.length()){
      System.out.println("Caracter :"+ (i+1) + " " + entrada.substring(i,(i+1))); i++;
        }
     }
  }
Bucle Do while
Código: [Seleccionar]
import java.util.Scanner;
public class BucleWhile{
  public static void main(String []args){
    System.out.println("Hola. \nIntroduce un texto para asi enumerar cada caracter en una columna.");
    Scanner escaner = new Scanner(System.in);
    String entrada = "";
    entrada = escaner.nextLine();
    int i = 0;
       do{
            System.out.println("Caracter :"+ (i+1) + " " + entrada.substring(i,(i+1))); i++;
    }  while(i < entrada.length());
  }
}
Salu2!

213
 He logrado conseguir dos posibles soluciones para este ejercicio.

En este primer código se muestra un bucle while anidando un bucle for, donde coloque el mismo condicional if a cada bucle para que se pudiese ejecutar el break y el código trabaje como a de esperarse.

Código: [Seleccionar]
import java.util.Scanner;
public class BucleWhile{
  public static void main(String []args){
    System.out.println("Hola. \nIntroduce un texto para asi enumerar cada caracter en una columna.");
    Scanner escaner = new Scanner(System.in);
    String entrada = "";
    entrada = escaner.nextLine();
    int contador = 1;
    while(true){
        for(int i=0; i<entrada.length(); i++)
        {System.out.println("Caracter :"+ contador++ + " " + entrada.substring(i,(i+1)));
        if(contador > entrada.length()){break;}}
        if(contador > entrada.length()){break;}
     }
  }
}


y en este segundo código, se muestra un bucle do while anidando un bucle for, donde al igual que en el primer código incluí la variable int contador = 1; declarada como variable global del método main haciendo así esta variable visible tanto para los if(){break;} del primer código como para el while(); de este segundo código.

Código: [Seleccionar]
import java.util.Scanner;
public class BucleWhile{
  public static void main(String []args){
    System.out.println("Hola. \nIntroduce un texto para asi enumerar cada caracter en una columna.");
    Scanner escaner = new Scanner(System.in);
    String entrada = "";
    entrada = escaner.nextLine();
    int contador = 1;
    do{
     for(int i=0; i<entrada.length(); i++)
      {System.out.println("Caracter :"+ contador++ + " " + entrada.substring(i,(i+1)));
        }
     }while(contador < entrada.length());
  }
}

bienvenidos sean sus comentarios y consejos, salu2

214
 Excelente consejo César.
e replanteado el código eliminando las variables: cero1, uno1 , numCaracter1, cero2, uno2, numCaracter2, y mejorando el diseño del código al darle mas uso a la variable "i", tal y como lo recomendaste.

Código: [Seleccionar]
import java.util.Scanner;
public class DetallandoCadenasTexto{
  public static void main(String []args){
    System.out.println(" Hola! \nPor favor escribe tu nombre.");
    Scanner Escaner = new Scanner(System.in);
    String nombre = "";
    String cadena1 = "";
    String siNo = "";
    String cadena2 = "";
    nombre = Escaner.nextLine();
    System.out.println("muchas gracias \"" + nombre + "\" \nahora escribe una cadena de texto para asi poder enumerar cada carácter en una columna.");
    cadena1 = Escaner.nextLine();
    System.out.println("Ok " + nombre + "! este es el detalle de la cadena de texto que has escrito: \n");
    for(int i=0; i<cadena1.length(); i++)
    {System.out.println("Caracter :"+ (i+1) + " " + cadena1.substring(i,(i+1)));}
    System.out.println("\nte gustaría consultar otra cadena de texto?");
    siNo = Escaner.nextLine();
    if(siNo.equals("si") || siNo.equals("Si") || siNo.equals("SI")){System.out.println("muy bien! por favor introduce la nueva cadena de texto a consultar:");
    cadena2 = Escaner.nextLine();
    System.out.println("Ok " + nombre + "! este es el detalle de la nueva cadena de texto que has escrito: \n");
    for(int i=0; i<cadena2.length(); i++)
    {System.out.println("Caracter :"+ (i+1) + " " + cadena2.substring(i,(i+1)));}
    System.out.println("\nGracias por consultar cadenas de texto, espero que te aya sido de utilidad, feliz resto del dia " + nombre + "\nHasta la próxima! \n;)");}
    if(siNo.equals("no") || siNo.equals("No") || siNo.equals("NO"))
    { System.out.println("Ok, como prefieras, gracias por consultar cadenas de texto, espero que te aya sido de utilidad, feliz resto del día " + nombre + "\nHasta la próxima!");}
    }

}

 para futuros códigos tendré en cuenta declarar variables nuevas solo si son realmente necesarias, y usar las ya declaradas al máximo para obtener un código mas limpio.

muchas gracias César!

215
Código: [Seleccionar]
import java.util.Scanner;
public class DetallandoCadenasTexto{
  public static void main(String []args){
    System.out.println(" Hola! \nPor favor escribe tu nombre.");
    Scanner Escaner = new Scanner(System.in);
    String nombre = "";
    String cadena1 = "";
    String siNo = "";
    String cadena2 = "";
    int cero1 = 0;
    int uno1 = 1;
    int numCaracter1 = 1;
    int cero2 = 0;
    int uno2 = 1;
    int numCaracter2 = 1;
    nombre = Escaner.nextLine();
    System.out.println("muchas gracias \"" + nombre + "\" \nahora escribe una cadena de texto para asi poder enumerar cada carácter en una columna.");
    cadena1 = Escaner.nextLine();
    System.out.println("Ok " + nombre + "! este es el detalle de la cadena de texto que has escrito: \n");
    for(int i=0; i<cadena1.length(); i++)
    {System.out.println("Caracter :"+ numCaracter1++ + " " + cadena1.substring(cero1++,uno1++));}
    System.out.println("\nte gustaría consultar otra cadena de texto?");
    siNo = Escaner.nextLine();
    if(siNo.equals("si") || siNo.equals("Si") || siNo.equals("SI")){System.out.println("muy bien! por favor introduce la nueva cadena de texto a consultar:");
    cadena2 = Escaner.nextLine();
    System.out.println("Ok " + nombre + "! este es el detalle de la nueva cadena de texto que has escrito: \n");
    for(int i=0; i<cadena2.length(); i++)
    {System.out.println("Caracter :"+ numCaracter2++ + " " + cadena2.substring(cero2++,uno2++));}
    System.out.println("\nGracias por consultar cadenas de texto, espero que te aya sido de utilidad, feliz resto del dia " + nombre + "\nHasta la próxima! \n;)");}
    if(siNo.equals("no") || siNo.equals("No") || siNo.equals("NO"))
    { System.out.println("Ok, como prefieras, gracias por consultar cadenas de texto, espero que te aya sido de utilidad, feliz resto del día " + nombre + "\nHasta la próxima!");}
    }

}
Salu2!

216
Aprender a programar desde cero / Re:EJERCICIO CU00654B
« en: 02 de Julio 2014, 19:24 »
G r a c i a s    toni_apr   ;D

217
 Este ejercicio fue un verdadero dolor de cabeza, hasta que me di cuenta que existía "equals"  ;D

Código: [Seleccionar]
import java.util.Scanner;
public class DetallesDeEntradaDeDatos{
    public static void main(String []args){
        System.out.println(" Hola!");
        System.out.println("");//Buscando un espacio entre la linea de saludo y la linea que pide la entrada.
        System.out.println("Por favor introduce un texto");
        String entradaTeclado = "";
        Scanner entradaEscaner = new Scanner(System.in);
        entradaTeclado = entradaEscaner.nextLine();
        int numeroCaracteres = entradaTeclado.length();
        if(numeroCaracteres < 5 && entradaTeclado.substring(0,1).equals ("A") || numeroCaracteres < 5 && entradaTeclado.substring(0,1).equals ("a"))
        {System.out.println("El texto introducido consta de menos de 5 caracteres y comienza con la letra \"" + entradaTeclado.substring(0,1) + "\".");}
        else if(numeroCaracteres < 5)
        {System.out.println("El texto introducido consta de menos de 5 caracteres y no comienza con la letra \"" + "a" + "\".");}
        else if(numeroCaracteres >=5 && numeroCaracteres <=15 && entradaTeclado.substring(0,1).equals("A") ||
        numeroCaracteres >=5 && numeroCaracteres <=15 && entradaTeclado.substring(0,1).equals("a"))
        {System.out.println("El texto introducido consta de entre 5 y 15 caracteres y comienza con la letra \"" + entradaTeclado.substring(0,1) + "\".");}
        else if(numeroCaracteres >=5 && numeroCaracteres <=15)
        {System.out.println("El texto introducido consta de entre 5 y 15 caracteres y no comienza con la letra \"" + "a" + "\".");}
        else if(numeroCaracteres >= 16 && entradaTeclado.substring(0,1).equals ("A") || numeroCaracteres >= 16 && entradaTeclado.substring(0,1).equals ("a"))
        {System.out.println("El texto introducido consta de entre 5 y 15 caracteres y comienza con la letra \"" + entradaTeclado.substring(0,1) + "\".");}
        else if(numeroCaracteres >=16)
        {System.out.println("El texto introducido consta de mas de 15 caracteres y no comienza con la letra \"" + "a" + "\".");}
        else{}
    }
}

Salu2!

218
Código: [Seleccionar]
public class Profesor{
    String nombre, apellidos;
    boolean casado, especialista;
    int edad;

    public Profesor(String nombre, String apellidos, boolean casado, boolean especialista, int edad){//Constructor 1 (inicializado)
        this.nombre = nombre;
        this.apellidos = apellidos;
        this.casado = casado;
        this.especialista = especialista;
        this.edad = edad;
    }

    public Profesor(){//Constructor 2 (general)
        nombre = "";
        apellidos = "";
        casado = false;
        especialista = false;
        edad = 0;
    }

    //setters
    public void setNombre(String nombre){this.nombre = nombre;}

    public void setApellidos(String apellidos){this.apellidos = apellidos;}

    public void setCasado(boolean casado){this.casado = casado;}

    public void setEspecialista(boolean especialista){this.especialista = especialista;}

    public void setEdad(int edad){this.edad = edad;}

    //getters
    public String getNombre(){return this.nombre;}

    public String getApellidos(){return this.apellidos;}

    public boolean getCasado(){return this.casado;}

    public boolean getEsEspecialista(){return this.especialista;}

    public int getEdad(){return this.edad;}
}

Salu2!

219

 Puesto que el paquete java.lang que contiene la clase String se carga automáticamente, no se incluyo la sentencia: import java.lang.String; para hacer uso del método substring.

Código: [Seleccionar]
public class FraccionesDeTexto{

    public FraccionesDeTexto(){

    }

    public String fraccionesDeTextoCombinadas(String texto1, String texto2, String texto3){
       String fraccionesDeTextoCombinadas = texto1.substring(0,2) + " " + texto2.substring(0,4) + "-" + texto3.substring(0,6);
       return fraccionesDeTextoCombinadas;
   
      }

}

Salu2!

220
Aprender a programar desde cero / Re:Ejercicio! entrega CU00647B
« en: 30 de Junio 2014, 22:35 »
 Mala mía!  ;D

creo que tendré que pausar de programar y tomar un curso de ortografía, lolz

Gracias César.
Salu2.

Páginas: 1 ... 6 7 8 9 10 [11] 12 13

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