Делаю калькулятор, хочу что бы при нажатии клавиши = из текстового поля JTextarea считалась строка например 10+2 и затем производилось мат. вычисление.
Пытался поэлементно перевести String->Int, но как быть с символом операции?
Если задача в том, чтобы вычислить простейшее выражение v1 +-*/ v2, то можно просто посимвольно пробежаться в цикле по исходной строке и сформировать в итоге три строки: первая и третья - операнды, вторая - операция. Проверить является ли строка или символ числом можно с помощью метода isDigit(). Получив символ операции используйте if-else или switch для определения, что это за операция и что нужно сделать впоследствии.
Если задача написать калькулятор любой строки с поддержкой приоритетов, множества операций и даже функций, то либо алгоритм на основе стека, который хорошо описан в книге Роберта Седжвика "Алгоритмы на Java", либо можно методом рекурсивного спуска, если знакомы чутка с теорией компиляторов.
Считать его в отдельную переменную и через switch реализовать выбор нужного действия.
Покопался на просторах интернета и нашел решение при помощи JavaScript:
public void actionPerformed(ActionEvent e) {
String s1 = text.getText();
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByName("JavaScript");
try {
Object s2 = engine.eval(s1);
text.setText(s2.toString());
}
catch (ScriptException e1){
e1.printStackTrace();
}
}
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости