DUDA SOBRE EJERCICIO

Iniciado por hola777, 26 Noviembre 2013, 23:35 PM

0 Miembros y 1 Visitante están viendo este tema.

hola777

Hola que tal !

El ejercicio que estoy haciendo me dice que programe un formulario mediante clases que permita ingresar numeros a un arreglos sin repeticion

He hecho esto:

CLASE:
public class clase56 {
     private int num[]= new int[20];
    private int n;
    public clase56(){
   
    n=0;
   
    }
   
   
   public void setverificar(String xnum){
         String c="";
        int aux=0;
       num[n]=Integer.parseInt(xnum);
       n=n+1;
 
   for(int k=0;k<n;k++){
   aux=0;
   for(int j=0;j<k;j++){
   
    if(num[k]==num[j]){
   
   aux++;
   if(aux==1){
   JOptionPane.showMessageDialog(null,"numero repetido.. ingrese otro valor");
   
   }
    }
   }
   
    }
   
   
   
   
   
   
    }
   
   
   public String getElemento(){
   
    String cad1,cad2="";
    for(int k=0;k<n;k++){
   
    cad1=String.valueOf(num[k]);
    cad2=cad2+" "+cad1;
    }
   
   
   
   
   
     
    return cad2;
    }
}


Formulario:
clase56 obj56=new clase56();
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         

        obj56.setverificar(jTextField1.getText());
        jLabel2.setText(obj56.getElemento());
        // TODO add your handling code here:
    }   

pero no llego a lo que quiero ! sugerencias plis!

Mitsu

No lo he probado, pero debería funcionar.

Código (=java) [Seleccionar]

public void readNumbers() {

                numeros = new int[20];

for(byte indice = 0; indice < numeros.length; indice++) {
String str_numero;
do {
str_numero = JOptionPane.showInputDialog(null,"Ingrese un entero","Entrada de datos",JOptionPane.INFORMATION_MESSAGE);
} while((checkNumber() == false) || (isRepeated(numero,indice)));
int numero = Integer.valueOf(str_numero);
numeros[indice] = numero;
}
}

private boolean isRepeated(int numero,int indice) {
if (numero == numeros[indice-1]) {
return true;
}
return false;
}

private boolean checkNumber() {

try {
Integer.valueOf(str_numero);
return true;
}
catch (NumberFormatException | InputMismatchException e) {
return false;
}
}


El primer método hace el ingreso de números por medio de un for, lo hace por medio de un do - while que se iterará mientras no se ingrese un entero o el número esté repetido. Si se ingresa cualquier cosa en vez de un número, el método checkNumber(int numero) atrapa la excepción y devuelve false, indicando que no se ha ingresado un número correctamente. Si se ingresa un número correcto pero que ya está repetido, el método isRepeated(int numero, int índice) devuelve false, por lo que continúa el do - while.


Saludos.