Foro de elhacker.net

Programación => Java => Mensaje iniciado por: willyrex99 en 31 Marzo 2014, 09:55 am



Título: Ayuda en Java
Publicado por: willyrex99 en 31 Marzo 2014, 09:55 am
necesito este programa y me e enrredado todo :(

1. almacena una lista de nombres en un arreglo y luego los ordena alfabéticamente. El método de ordenamiento es relativamente simple. Para la entrada de datos se utiliza una estructura MIENTRAS, sin saber a priori la cantidad de datos que se ingresarán.

esto es lo que tengo. ayudenme a corregirlo por favor

Código:
package programa3;
import java.util.Collections;
import javax.swing.*;
/**
 *
 * @author tarea
 */
public class Programa3 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
    int n,i;
    String lista="Lista de nombres es:\n";
    n =Integer.parseInt(JOptionPane.showInputDialog("ingrese el numero de persona:"));
    String nombres[]=new String [n];

    //Ingreso de los nombres
    for(i=0;i< nombres.length;i++){
        nombres =JOptionPane.showInputDialog("Ingrese nombre"+(i+1)+":");
    }
    for (i=0;i<nombres.length;i++){
        lista=lista+(i+1)+"."+nombres+"\n";
         
    for(int i = 0; i < a.length; i++){
     
    }
    Collections.sort(lista);
       
    }
    JOptionPane.showMessageDialog(null,lista );
   

}


Título: Re: Ayuda en Java
Publicado por: Mitsu en 31 Marzo 2014, 15:39 pm
Hola, primero hay que ajustar algunos detalles, la estructura Mientras es while, la estructura Para es for.

Como ya tienes una cantidad fija de nombres que se ingresarán, no necesitas un centinela, si no un contador.

Código
  1. byte i=0;
  2. while( i < n) {
  3. nombres[i] =JOptionPane.showInputDialog("Ingrese nombre"+(i+1)+":");
  4. i++;
  5. }
  6.  
  7. Arrays.sort(nombres); // ordena los nombres en orden ascendente
  8. //List<String> milista = Arrays.asList(); convierte un array a list
  9.  
  10. System.out.println("Numero\tNombre");
  11. for(String i: nombres) {
  12. System.out.println((i+1)+"\t"+i);
  13. }


No puedes usar el método sort de la clase Collections porque éste método solo ordena listas. Primero tendrías que convertir tu array a lista con el método asList(array[]) de la clase Arrays.

Salu2.