J’ai une variable (String) qui est un operateur (+, -, *, / ou ^).
Comment faire pour l’utiliser pour faire une opération.
Merci bcp.
J’ai une variable (String) qui est un operateur (+, -, *, / ou ^).
Comment faire pour l’utiliser pour faire une opération.
Merci bcp.
Genre comme ça :
if ( "+"equals(plus) ) return op1 + op2;
?
Bonjour,
c’est pas trivial ton truc: tu veux interpréter du code contenu dans une String alors:
précise le besoin
edit: sans-nom a été plus rapide: c’était ce que j’appelle parser à la main son truc.
disons que je ne sais pas au debut quel operateur ca va etre … je ne dois le faire qu’en java.
Merci Sans-Nom j’avais deja cette solution mais elle est un peu lourde. Il n’y en a pas dotre plus legere?
Merci pour vos reponses.
josehsartre> HashMap du genre
interface Operator {
public double eval(double a, double b);
}
class Evaluator
{
private static final Map<String, ? implements Operator> op = new HashMap<String, ? implements Operator>();
static {
map.put("+", new OperatorPlus());
map.put("-", new OperatorMinus());
map.put("*", new OperatorMultiply());
map.put("/", new OperatorDivide());
map.put("^", new OperatorPow());
}
private Evaluator() {}
public static double eval(String operator, double a, double b)
{
Operator op = map.get(operator);
if (op == null )
throw new IllegalArgumentException( "'" + operator + "' is not a legal operator");
return op.eval(a, b);
}
}
(y a pas de mérite, j’ai fais un truc du même genre lundi)
Merci bcp … ca marche parfaitement … merci Sans-Nom
de rien
Tu peux même faire carrément des classes anonymes voir un enum