Java - rellenar vector de [20] por teclado, sin repetir datos

 
Vista:
sin imagen de perfil
Val: 8
Ha aumentado su posición en 5 puestos en Java (en relación al último mes)
Gráfica de Java

rellenar vector de [20] por teclado, sin repetir datos

Publicado por Jose (5 intervenciones) el 31/10/2016 03:03:13
hola buenas. necesito una ayuda soy nuevo en el foro.
necesito llenar un vector con datos de tipo String sin repetir, comprobando cada vez que ingreso algun dato de que este no este repetido; antes de que sea almacenado en le vector, si esta repetido que no sea almacenado .
los datos los pido en un text field(en netbeans) y los almaceno en un vector. pero no puedo hacer la comprobación desde el segundo dato ya que necesito comparar desde el segundo dato... ya que el primero es el primero y es ilógico que se repitiese.
1
2
3
4
String[] cedulas=new String [20];
    String cedula;
    int i =0;
    int j= 0;
//para capturar
1
2
3
4
5
6
if(!txtced.getText().equals("")){
 
        cedula=txtced.getText();
        cedulas[i]=cedula;
        txtced.setText("");
        i++;}
//para imprimir hasta 20
1
2
3
for(j=0; j <cedulas.length; j++){
            System.out.println(": "+ cedulas[j]);
        }

mi caja de texto se llama txtced y las variables que uso ya están respectivamente declaradas al igual que el vector.
la pregunta es donde debería colocar el for para recorrer el vector y como deberia hacer la comprobacion?
gracias de antemano.
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
sin imagen de perfil

rellenar vector de [20] por teclado, sin repetir datos

Publicado por Pedro (81 intervenciones) el 31/10/2016 16:40:09
Buenas,

¿Es un ejercicio de clase?
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
sin imagen de perfil
Val: 8
Ha aumentado su posición en 5 puestos en Java (en relación al último mes)
Gráfica de Java

rellenar vector de [20] por teclado, sin repetir datos

Publicado por Jose (5 intervenciones) el 01/11/2016 03:48:24
si, uso una clase principal y un jframe en (netbeans).
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
Imágen de perfil de Alejandro
Val: 16
Ha aumentado su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

rellenar vector de [20] por teclado, sin repetir datos

Publicado por Alejandro (3 intervenciones) el 31/10/2016 23:36:26
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int i = 0;
int cantCedulas = cedulas.length;
bolean seRepite = false;
 
while(seRepite == false &&  i < cantCedulas) {
 
   if ( cedulas[i].equals(cedula) )   {
 
        System.out.println("La cédula ya existe!!");
        seRepite = true;
  }
 
}
 
if ( !seRepite ) {
 
   cedulas[cedulas.length] = cedula;
    System.out.println("Cédula registrada!!");
}

Prueba con esto y avísanos.
Saludos
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
sin imagen de perfil
Val: 8
Ha aumentado su posición en 5 puestos en Java (en relación al último mes)
Gráfica de Java

rellenar vector de [20] por teclado, sin repetir datos

Publicado por Jose (5 intervenciones) el 01/11/2016 04:06:51
amigo en que parte de mi código basándome en la estructura para capturar que puse arriba debería usar el while, sabiendo que los datos cedula los pido en un textfield?. gracias por responder.
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
Imágen de perfil de Alejandro
Val: 16
Ha aumentado su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

rellenar vector de [20] por teclado, sin repetir datos

Publicado por Alejandro (3 intervenciones) el 02/11/2016 03:37:26
Proba con esto y avísame. Use un inputDialog, si funciona podes cambiarlo por el textfield.

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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
package cedula;
 
import javax.swing.JOptionPane;
 
public class Cedula {
 
    public static void main(String[] args) {
 
        String[] cedulas = new String [5];
 
        String cedula = "";
 
        int i = 0, x = 0, cantidadCedulas = cedulas.length;
 
        boolean salir = false, existe = false;
 
        while(i < cantidadCedulas && salir == false) {
 
            try {
                cedula = JOptionPane.showInputDialog("Ingresa tu cédula");
 
                // si esta vacía vuelve la vuelve a pedir
                if ( cedula.isEmpty() ) {
                    JOptionPane.showMessageDialog(null, "Cédula requerida");
                } else {
 
                    x = 0;
                    existe = false;
 
                    // si no es la primera cédula comparo la cédula ingresada 
                    // con las cédulas ya presentes en el array
                    if ( i > 0 ) {
                        while ( x < cantidadCedulas && existe == false ) {
                            if ( cedulas[x] != null && cedulas[x].equals(cedula) ) {
                                existe = true;
                                JOptionPane.showMessageDialog(null, "La cédula ingresada ya existe");
                            }
                            x++;
                        }
                    }
 
                    if ( existe == false ) {
                        // incrementa y guardo solo si la cédula no es vacía ni tampoco existe                        
                        cedulas[i] = cedula;
                        i++;
                    }
 
                }
 
            } catch( NullPointerException e) {
                salir = true;
            }
 
        }
 
        System.out.println("************** Cédulas ingresadas **************");
 
        // muestro las cédulas ingresadas
        for (String ci : cedulas) {
            System.out.println(ci);
        }
 
     }
}
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
sin imagen de perfil
Val: 8
Ha aumentado su posición en 5 puestos en Java (en relación al último mes)
Gráfica de Java

rellenar vector de [20] por teclado, sin repetir datos

Publicado por Jose (5 intervenciones) el 02/11/2016 17:49:10
gracias amigo, probe tu código solo en un proyecto nuevo y si me funciono... ya solo me falta adaptarlo a mi proyecto y listo. de eso me encargo yo. muchas gracias a los que respondieron a mi duda.
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