como comparar dos cadenas

alejandro
07 de Febrero del 2006
hola necesito hacer un programa en el que tengo que pedir dos cadenas y ver si tienen las mismas palabras,da igual que estas se repitan o no.
yo habia pensado en coger una palabra de la primera cadena y compararla con la segunda cadena,pero me he hecho un lio,y no se hacerlo en java.
Alguien me puede dar una idea de como hacerlo?

NoDo
07 de Febrero del 2006
Hola!

Bien, pues lo puedes hacer de la siguiente manera:

Una vez leídas las cadenas por teclado, haces:

if(cadena1.compareTo(cadena2)==0){
System.out.println("Son iguales.");
}

También puedes usar compareToIgnoreCase(), que no distingue mayús. ni minúsuclas.

Venga,un saludo y espero haberte ayudado.

Diego
07 de Febrero del 2006
Si tienes una cadena larga con espacios en blanco, puedes hacerlo un array de cadenas con el método split("\s"), ordenarlo con java.util.Arrays.sort(array), utilizar un java.util.Scanera partir de la primera cadena, y a cada next() buscarlo mediante java.util.Arrays.binarySearch(). Si no se encuentra, se devuelve un número negativo, por lo que si todos los resultados a la llamada de este método son no negativos, entonces todas las palabras de la primera cadena están contenidas en la segunda. Espero que te sirva.
import java.util.Arrays;
import java.util.Scanner;

public static boolean contiene(String cad1,String cad2)
{
int pos=0;
Scanner palabras=new Scanner(cad1);
String [] cadenas=cad2.split(("\s");
Arrays.sort(cadenas);
while(pos>=0&&palabras.hasNext())
pos=Arrays.binarySearch(palabras.next());.
return pos>=0;
}