voy a ir por partes para que me podais ayudar mejor
- el ejercicio dice asi: escribe un programa que pida dos cadenas por pantalla e indique si dichas cadenas tienen las mismas palabras aunque sea en distinto orden y repetidas un numero distinto de veces. Nota: habra que distinguir lo que son palabras recorriendo las cadenas. No se pueden utilizar funciones de libreria que faciliten esta labor.
bueno el ejercicio lo tengo claro y tal y supuestamente lo he terminado, pero me da un error al intentar comparar las palabras, que he metido en vectores.
os pego el codigo que tengo para que os podais aclarar, pongo en negrita el sitio donde me da el error, esta un poco desordenado pero bueno:
import java.io.*;
public class ejercicio34 {
public static void main(String[] args)throws IOException {
InputStreamReader en = new InputStreamReader (System.in);
BufferedReader entrada = new BufferedReader (en);
String n;
int longi;
int i;
char ch;
int j=1;
String b;
System.out.println("dos frasecillas a comparar ");
n = entrada.readLine();
b=entrada.readLine();
//primera frase//
longi=n.length();
for(i=longi-1;i>-1;i--) {
ch=n.charAt(i);
switch(ch) {
case' ':
j=j+1;
break;
default:
break;
}
}
int c=0;
String[] v= new String[j];
String cadena="";
for(i=0;i<longi;i++) {
ch=n.charAt(i);
if (i==longi-1){
cadena=cadena+ch;
v[c]=cadena;
c=c+1;
cadena="";
}else {
switch(ch) {
case' ':
c=c+1;
cadena="";
break;
default:
cadena=cadena+ch;
v[c]=cadena;
break;
/*finswitch*/ }
/*finelse*/ }
/*finfor*/}
// segunda frase //
int h=1;
int k= 0;
longi=b.length();
for(i=longi-1;i>-1;i--) {
ch=b.charAt(i);
switch(ch) {
case' ':
h=h+1;
break;
default:
break;
}
}
String[] w= new String[h];
for(i=0;i<longi;i++) {
ch=b.charAt(i);
if (i==longi-1){
cadena=cadena+ch;
w[k]=cadena;
k=k+1;
}else {
switch(ch) {
case' ':
k=k+1;
cadena="";
break;
default:
cadena=cadena+ch;
w[k]=cadena;
break;
}
}
}
// comparacion //
AQUI ES EL ERROR
String cadena1;
String cadena2;
int g;
int z;
for (g=0;g<=c ;g++){
for (z=0;z<=h;z++){
cadena1=v[g];
cadena2=w[z];
if (cadena1.equals(cadena2)){
System.out.print("verdadero" );
}else{
System.out.print("falsoo" );
AQUI ACABA EL ERROR
/finelse/ }
/finfor/ }
}
//los dos ultimos
}
}