Учитывая, что у меня есть строка ниже: "june1 + august1".
Мне нужно окончательное значение для оценки "julyseptember"
Но окончательное значение в настоящее время оценивается как "july + september".
Что нужно сделать, чтобы строка соответствовала тому, что мне нужно?
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("JavaScript");
value = "june1 + august1";
value = value.replaceAll("june1", "july");
value = value.replaceAll("august1", "september");
script = "print(msg)";
engine.put("msg", value);
engine.eval(script);




value = value.replaceAll(" + ", "");
здесь необходимо оценить знак плюса. не заменяется на "" для объединения. значение = "1 + 2"; retval = engine.eval (значение); System.out.println (retval);
@Imran, если вы собираетесь критиковать ответы людей, вам, вероятно, следует изложить свои требования в своем вопросе.
Хотя этот фрагмент кода может решить вопрос, включая объяснение действительно помогает улучшить качество вашего сообщения. Помните, что вы отвечаете на вопрос для читателей в будущем, и эти люди могут не знать причины вашего предложения кода.
Свяжите две переменные june1 и august1 в контексте сценария вместо того, чтобы вводить их с помощью replaceAll:
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("JavaScript");
String script = "june1 + august1";
engine.put("june1", "july");
engine.put("august1", "september");
String result = (String) engine.eval(script);
System.out.println(result); // will output julyseptember
Обратите внимание на разницу между вашим кодом здесь и
String script = "print('july' + 'september')";.