como comparar dos cadenas
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?
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?
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.
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.
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;
}
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;
}
