duda con split en java

tricornio

Buenas.

Tengo el siguiente codigo:

public String diffWords() {
        String resultado = "";
        String copiaString = string.replaceAll(" +", " ").trim(); //elimina los espacios del medio cuando hay mas de 1. Y los del principio y el final
        String[] partido = copiaString.split(" "); //hacemos un split de copiaString
        String[] presultado = new String[partido.length]; //creamos un array string del mismo tamaño que partido
        int contador = 0;

    
    for(int i=0; i < partido.length; i++){
        for(int h=0; h < presultado.length; h++){
            if(partido[i] != presultado[h]){     //tambien he probado con: if( !partido[i].trim().equals(presultado[h]) ){
                presultado[contador] = partido[i]; 
                contador++;
            }
        }
    }
            
        
    for(int m=0; m<presultado.length; m++){
        if(presultado[m] != null){
            resultado = resultado + " " + presultado[m]; //convertimos el string array en un string
        }
    }
        
    return resultado;    //devolvemos el resultado
    
}

Lo que estoy buscando que haga, es que dada una string, por ejemplo:

"holaman hola holas hola holas"

me devuelva:

"holaman hola holas"

Es decir, que devuelva lo que no se repita. Para ello he usado split, ya que usando indexOf.() me da errores en el sentido de que me confunde "holaman" con "hola" y se piensa que son iguales.

Total, que creo que lo tengo bien pero no encuentro el fallo en el código que os muestro.

A ver si podéis iluminarme jajaja

DiimitriZ

sitio para leer y ayudar, que entiendo un poco del tema
edit: mierda, es java, no me manejo en ese..
Siento no poder ayudar :(

1 respuesta
tricornio

bueno, ya lo solucione, por si a alguno le interesa:

public String diffWords() {
        String resultado = "";
        String copiaString = string.replaceAll(" +", " ").trim(); //elimina los espacios del medio cuando hay mas de 1. Y los del principio y el final
        String[] partido = copiaString.split(" ");
        String[] presultado = new String[partido.length];
        int contador = 0;
        int contador2 = 0;

    
    for(int i=0; i < partido.length; i++){
        for(int h=0; h < presultado.length; h++){
            if(!partido[i].trim().equals(presultado[h])){   // if( partido[i].trim() != presultado[h] ){    <-- asi NO        
                contador2++;
            }
            if(contador2 == presultado.length){
            	presultado[contador] = partido[i];
                contador++;
            }
        }
        contador2 = 0;
    }
            
        
    for(int m=0; m<presultado.length; m++){
        if(presultado[m] != null){
            resultado = resultado + " " + presultado[m];
        }
    }
        
    return resultado;//devolvemos el resultado
    
}

#2 gracias igualmente ^^

Usuarios habituales

  • tricornio
  • DiimitriZ