Java - string en java

 
Vista:

string en java

Publicado por maria (11 intervenciones) el 11/07/2006 09:12:36
Hola, tengo un problemita, el caso eq tengo en un string una condicion, xej, Radiacion<6&&Temperatura>5, y quiero en un if comprobar si es cierto. Indicaros que Radiacion y Temperatura son dos variables que tengo declaradas.

Quiero poner algo asi: if(condicion), pero me da error ¿Sabeis alguna forma?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:string en java

Publicado por c (28 intervenciones) el 11/07/2006 09:35:34
En un if tiene que ir una condición que devuelva un boolean.

Podrías separar el string Radiacion<6&&Temperatura>5 y para tomar los valores con los que tienes que comparar y el tipo de comparación.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:string en java

Publicado por maria (11 intervenciones) el 11/07/2006 09:56:11
No entiendo a lo que te refieres con separar el string. La condicion puede ser todo lo larga que el usuario quiera, es decir, puedo poner Radiacion>9&&Temperatura>6&&VelViento==0...

Ahh, dices separar Radiacion por un lado, por otro el simbolo > y por otro el valor y asi....¿?

No se, pq de qforma puedo luego compararlo en el if¿?¿??¿
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:string en java

Publicado por c (28 intervenciones) el 11/07/2006 11:20:33
Podrias hacer algo así:

String cond = "Radiacion>9&&Temperatura<6&&VelViento==0";

String []condiciones;
condiciones = cond.split("&&");
int indice=-1;
int tipo =-1;
String variable ="";
String valor ="";
java.util.Vector condicionesAEvaluar= new java.util.Vector();

for (int i=0; i<condiciones.length; i++){
System.out.println(condiciones[i]);
indice = condiciones[i].indexOf("<");
if (indice !=-1){
tipo =0;
variable = condiciones[i].substring(0,indice);
valor = condiciones[i].substring(indice +1);
}

if (indice ==-1){
indice = condiciones[i].indexOf(">");
if (indice !=-1){
tipo =1;
variable = condiciones[i].substring(0,indice);
valor = condiciones[i].substring(indice +1);
}
}

if (indice ==-1){
indice = condiciones[i].indexOf("==");
if (indice !=-1){
tipo=2;
variable = condiciones[i].substring(0,indice);
valor = condiciones[i].substring(indice +2);
}
}


System.out.println(variable + " " + tipo + " " + valor);

//Creas un objeto que almacene estos datos y lo añades al vector
condicionesAEvaluar.add(new Condicion (tipo, valor, variable));

indice = -1;
variable ="";
tipo = -1;

}

//Finalmente puedes llamara a una función pasándole cada elemento del vector y la variable a la que se refiere la comparacion. Esta función hara la comparación y devolverá un boolean

No es muy elegante, sobre todo si hay muchas condiciones, pero igual te da alguna pista según lo que necesitas y puedes mejorarlo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:string en java

Publicado por maria (11 intervenciones) el 11/07/2006 11:46:29
Gracias,le exare un vistazo y ya te comento
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:string en java

Publicado por maria (11 intervenciones) el 11/07/2006 13:24:08
Me da un error en split, me dice no encontrado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:string en java

Publicado por c (28 intervenciones) el 11/07/2006 13:56:40
Yo tengo la j2sdk1.4.2_10 instalada, supongo que tu versión es anterior.

Puedes sustituir el split utilizando indexOf y substring como se muestra dentro del bucle for y metiendo a mano los resultados en el array de String.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:string en java

Publicado por maria (11 intervenciones) el 13/07/2006 08:36:31
Ya me sale, pero ahora no se como implementar la funcion que me decias que pasara cada elemento del vector y la variable a la que se refiere la comparacion¿?¿?¿¿?¿¿? Puedes ayudarme, plis

Gracias,
Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:string en java

Publicado por c (28 intervenciones) el 13/07/2006 12:06:49
En cada vuelta del bucle puedes hacer esto:

if ("Radiacion".equals(variable)){
resultadoParcial = evaluaCondiciones(tipo,new Integer (valor).intValue(), radiacion, resultadoParcial);
}
else if ("Temperatura".equals(variable)){
resultadoParcial = evaluaCondiciones(tipo,new Integer (valor).intValue(), temperatura, resultadoParcial);
}
else if ("VelViento".equals(variable)){
resultadoParcial = evaluaCondiciones(tipo,new Integer (valor).intValue(), velViento, resultadoParcial);
}

donde evaluaCondiciones sería algo así:

boolean evaluaCondiciones(int tipoComparacion,int valor, int variableAComparar, boolean resultadoParcial){

boolean resultado = false;
switch (tipoComparacion){
case 0:
if (variableAComparar < valor)
resultado = resultadoParcial;
else
resultado = false;
break;
case 1:
if (variableAComparar > valor)
resultado = resultadoParcial;
else
resultado = false;
break;

case 2:
if (variableAComparar == valor)
resultado = resultadoParcial;
else
resultado = false;
break;

}

return resultado;

}

Si tus condiciones siempre van a ser AND, puedes hacer que cuando esta función devuelva false deje de hacer el bucle, porque ya sabes el resultado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:string en java

Publicado por MARIA (11 intervenciones) el 13/07/2006 13:02:09
Mis condiciones pueden ser AND/OR.

Gracias, lo probare y ya te cuento
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:string en java

Publicado por MARIA (11 intervenciones) el 17/07/2006 12:49:30
Me ha ido perfecto el programita, ahora tengo una pequeña cuestion, ¿como puedo separar un String por un espacio en blanco? es decir, yo tengo "casa azul" y quiero separar y tener por un lado "casa" y por otro "azul".

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:string en java

Publicado por c (28 intervenciones) el 17/07/2006 13:08:50
Sólo tienes que usar substring(" ") y separarlo como hacias antes:

String s = "pal1 pal2";
String s1,s2;
int indice = s.indexOf(" ");
s1= s.substring(0,indice);
s2= s.substring(indice+1);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar