hacer compareTo con vector de char (para ordenar nombres)

Iniciado por d!lan, 18 Febrero 2014, 22:18 PM

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

d!lan

Saludos a la comunidad

me gustaria saber como puedo hacer un compareTo entre dos vectores de char es decir el vector de char de la clase (this.vectorX) y otro vectorX los cuales contienen un nombre que debo ordenar por nombre y apellido

y pues hasta el momento tengo hecho lo siguiente:

@Override
    public int compareTo(Object obj) {
         Persona per=(Persona) obj;
       return compararNombre(per);
    }

 
    private int compararNombre(Persona per) {
        int valor=0,valor2=0;
        if(this.myCarrera.equals(per.myCarrera)){
            valor=Character.toLowerCase(this.nombre[0])-Character.toLowerCase(per.nombre[0]);
            for (int i=0;i<this.nombre.length; i++) {
                if(this.nombre==' ' && i<this.nombre.length && this.nombre[i+1]!=' '){
                        valor2=Character.toLowerCase(this.nombre[i+1])-Character.toLowerCase(per.nombre[i+1]);
                   System.out.println(valor2);
                   break;
                 }
            }
        }
        return (valor-valor2);
    }

pero por ejemplo cuando hago la comparacion ejemplo: Maria Aurora y jesus gonzales retorna el valor de 9 es decir que Maria Aurora estaria de primero cuando deberia ser jesus gonzales



gracias

Eleкtro

Porfavor, usa las etiquetas de código... respeta las normas del foro.

PD: Sobre el código, no se Java.

Saludos!








NikNitro!

compareTo(Persona p) deberia devolver 1 si this> persona, 0 si son iguales o -1 si this< persona.

Para poder ayudarte, vendría de perlas que mostraras en qué consiste la clase Persona. Muestra el constructor y las variables.

Salud ;)

PD: Si editaras y pusieras las etiquetas de código (Es solo señalar el texto y darle a code) mucho mejor