lunes, 17 de febrero de 2014

Unidad 3: Ejercicio 13 Vector de nombres y apellidos

Hacer un programa en el que se declaren 3 vectores de nombres: nombre, apellido1 y apellido2, que tengan cada uno de ellos 10 nombres y 10 apellidos, dándole valores al declararlos sin que haya valores repetidos.

Declarar otro vector de nombre nombresApellidos de longitud 30, que contenga el contenido de los 3 vectores anteriores. Primero irán los nombres y después los apellidos. Asignarle valores a este vector utilizando el método arrayCopy.

a)      Escribir a continuación el nombre y apellidos de 5 personas, eligiendo aleatoriamente los valores de los vectores nombre,  apellido1 y apellido2. Estos 5 valores tienen que almacenarse previamente en un vector de 5 Strings de nombre nombresCompletos. Escribir los nombres ordenados alfabéticamente
a)      Repetir el apartado a) eligiendo los valores del vector nombresApellidos.

b)      (opcional)  Los nombres y apellidos no pueden estar repetidos.



import java.util.Arrays;
package unidad3ejercicio13;
import java.util.Arrays;
import java.util.Random;

/**
*
* @author juan
*/
public class Unidad3Ejercicio13 {

    /**
     * @param args the command line arguments
 

    */
    public static void main(String[] args) {
        String [] nombre = {"Daniel", "Yago", "Anxo", "Borja", "Diego", "Manolo", "Pepe", "David", "Pablo", "Miguel"};
String [] apellido1 = {"Gonzalez", "Perez", "Crespo", "Valverde", "Dominguez", "Castro", "Martinez", "Lopez", "ALvarez", "Bernardez"};
String [] apellido2 = {"Barja", "Gutierrez", "Fernandez", "Noguerol", "Outes", "Conde", "Rodriguez", "Alvarez", "Garcia", "Arean"};
        String [] nombresApellidos = new String[30];
        String [] nombresAleatorios = new String[5];
        Random aleatorio = new Random();
       
        System.arraycopy(nombre, 0, nombresApellidos, 0, nombre.length);
        System.arraycopy(apellido1, 0, nombresApellidos, nombre.length, apellido1.length);
        System.arraycopy(apellido2, 0, nombresApellidos, (nombre.length+apellido1.length), apellido2.length);
       
        for (int i = 0; i < nombresAleatorios.length; i++) {
            nombresAleatorios[i]=nombre[aleatorio.nextInt(nombre.length)]+" " + apellido1[aleatorio.nextInt(apellido1.length)]+" "+apellido2[aleatorio.nextInt(apellido2.length)]; ;
           
        }
        System.out.println("Nombres Generados aleatoriamente");
        System.out.println("================================");
        for (String string : nombresAleatorios) {
            System.out.println(string);
        }
       
       
        //Ahora copiándolos desde nombresapellidos
       
        for (int i = 0; i < nombresAleatorios.length; i++) {
            nombresAleatorios[i]=nombresApellidos[aleatorio.nextInt(nombre.length)]+" " + nombresApellidos[aleatorio.nextInt(apellido1.length)+nombre.length]+" "+nombresApellidos[aleatorio.nextInt(apellido2.length)+apellido1.length+nombre.length];
           
        }
        System.out.println("Nombres Generados aleatoriamente");
        System.out.println("================================");
        for (String string : nombresAleatorios) {
            System.out.println(string);
        }
       
        /* Comparación de cadenas
        nombresAleatorios[0]=nombresAleatorios[2];
        System.out.println(nombresAleatorios[0]==nombresAleatorios[2]);
        System.out.println(nombresAleatorios[0].equalsIgnoreCase(nombresAleatorios[2]));
        *
        */
        System.out.println("Nombres Generados aleatoriamente");
        System.out.println("================================");
        int cont=0;
        int cont2;
       
        while (cont<nombresAleatorios.length)
        {
            nombresAleatorios[cont]=nombresApellidos[aleatorio.nextInt(nombre.length)]+" " + nombresApellidos[aleatorio.nextInt(apellido1.length)+nombre.length]+" "+nombresApellidos[aleatorio.nextInt(apellido2.length)+apellido1.length+nombre.length];
            cont2=0;
            while (cont!=cont2 && !nombresAleatorios[cont].equalsIgnoreCase(nombresAleatorios[cont2])) {
                ++cont2;
            }
            if (cont==cont2) cont++;
        }
         for (String string : nombresAleatorios) {
            System.out.println(string);
        }
    }
}