Im пытается решить уравнение так: Четыре плюс десять делится на (пятьдесят пять плюс девять)Решая математическое уравнение, записанное в словах в Java
так, что я получаю ответ: 4,15625
Я знаю, что я могу решить уравнение String sentence = "4+10/(55+9)"
следующим образом:
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByName("JavaScript");
String infix = sentence;
try {
System.out.println(engine.eval(infix));
} catch (ScriptException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Но в любом случае, чтобы просто решить слова (nine..plu s..divide ..) уравнение. Или есть способ конвертировать слова (nine..plus..divide ..) в строку типа (9 ... + .../...), а затем использовать функцию, показанную выше, чтобы реши это?
Спасибо!
Я думаю, вам нужно будет составить список всех чисел и математических слов, чтобы сделать это. например пятьдесят = 5 и пять = 5, и они объединят их 55. split =/и by = nothing и plus = +. Я не уверен, что это будет действительный ответ, поэтому я помещаю его здесь в комментарии. – Forseth11
Стандартный способ сделать это будет использовать синтаксический анализатор, такой как Antlr: http://www.antlr.org/ –
Как сказал @Oliver, или вам нужно сканировать и анализировать, что, вероятно, они хотят от вас. – Tarik