Считывание функции вида f(x) для дальнейшей работы с ней
помогите пожалуйста. Задача состоит в том, что бы программа на java считывала функцию введеную в консоль (ну или в будущем в EditText в AndroidStudio). Я пишу калькулятор интегралов, и столкнулся с проблемой, что не могу придумать способ считывания функции. Ниже представлен код, который считает примерное значение интеграла для y=x^2. Надо что бы программа принимала String например:(x^2-2+x)/20 и выполняла все что указано в коде, только для введеной функции.
import java.text.DecimalFormat;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
/*входные данные, вместо первого значения должна вводиться функция.
Второе и третье значение - это пределы интеграла, а четвертое - dx.*/
func(0,-1,1,0.001);
}
public static int func(int func, int f, int s, double dx){
//объявляется массив под площади под графиком
double[] members;
//Считается количество малых площадей, а затем округляется до большего целого числа
double g = (s-f)/dx;
DecimalFormat decimalFormat = new DecimalFormat("###");
int result = Integer.parseInt(decimalFormat.format(g));
int i = 0;
double a = f;
//Запускается цикл который находит значение функциии и умножает его на dx, добавляя в ячейку массива
members = new double[result];
while(i < result){
double sqa = a * a * dx;
a = a + dx;
members[i] = sqa;
//System.out.println(members[i]);
i++;
}
//находит сумму малых площадей
double sum = 0;
for (int x = 0; x < result; x++) {
sum = sum + members[x];
System.out.println(sum);
}
return 0;
}
}