Java - programa que tenga un array de nombres que ingrese el usuario sin que se repitan

 
Vista:

programa que tenga un array de nombres que ingrese el usuario sin que se repitan

Publicado por Marcos (6 intervenciones) el 18/04/2020 03:52:48
Hola, quiero hacer un programa que tenga un array de nombres que ingrese el usuario sin que se repitan, pero este código da error al final. Alguien me explica por que?
Gracias.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Scanner in=new Scanner(System.in);
String nombres[]= new String[5];
String nombre;
int cont=0;
 
 
while(cont<nombres.length){
    boolean esta=false;
    System.out.println("Ingrese el nombre " + (cont+1));
    nombre=in.next();
 
    if (cont>0){
        nombre=nombre.toLowerCase();
 
        for (String nombre1 : nombres) {
            if (nombre.equals(nombre1)) {
                esta=true;
            }
        }
 
        if (esta) {System.out.println("El nombre ya fue Ingresado");}
        if (!esta){cont++; nombres[cont]=nombre;}
    }
 
 
    if (cont==0){ nombres[0]=nombre; cont++; }
}
 
System.out.println("");
System.out.print("Nombres: ");
for (int i=0;i<nombres.length;i++) {
    System.out.print(nombres[i] + ", ");
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Camilo
Val: 110
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

programa que tenga un array de nombres que ingrese el usuario sin que se repitan

Publicado por Camilo (25 intervenciones) el 18/04/2020 05:02:52
Buenas noches, el error esta en la línea 22, al colocar el último nombre, cont pasa de 4 a 5, y no existe un campo nombres[5], aquí dejo una forma de arreglar la línea 22 para que funcione

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Scanner in=new Scanner(System.in);
String nombres[]= new String[5];
String nombre;
int cont=0;
 
while(cont<nombres.length){
    boolean esta=false;
 
    System.out.println("Ingrese el nombre " + (cont+1));
    nombre=in.next();
 
    if (cont>0){
        nombre=nombre.toLowerCase();
 
        for (String nombre1 : nombres) {
            if (nombre.equals(nombre1)) {
                esta=true;
            }
        }
 
        if (esta) {System.out.println("El nombre ya fue Ingresado");}
        if (!esta){nombres[cont]=nombre; cont++;}
    }
 
 
    if (cont==0){ nombres[0]=nombre; cont++; }
}
 
System.out.println("");
System.out.print("Nombres: ");
for (int i=0;i<nombres.length;i++) {
    System.out.print(nombres[i] + ", ");
}

Buena suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar

Gracias

Publicado por Marcos (6 intervenciones) el 18/04/2020 05:45:24
Muchas Gracias!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar