Допустим, я прошу пользователя ввести любую формулу графика, для простоты пусть это будет
"y = x^n" где n — любая степень, которую может ввести пользователь
Строку можно получить так:
String str = formulafield.getText();
str.toLowerCase();
String [] arr = str.split("y = ");
String formula = arr[0];
можно заменить "^"
на "pow(r,"
formula.replaceAll("^", "pow(r,");
Получится строка
"xpow(r,n"
Затем находим символы.
int xIndex = formula.indexOf('x');
int commaIndex = formula.indexOf(',');
Затем заменяем 'r' на 'x'
formula.replase('r', 'x');
if(xIndex==0){
formula.replace('x','');
}
получим строку
"pow(x,n"
Далее добавим к этой строке скобку и точку с запятой
String fullformula = formula.concat(");");
Можно ли как-то получившуюся строку
"pow(x,n);"
Превратить в
Math.pow(x, n); ?
Подскажите алгоритм
Можно использовать exp4j https://www.objecthunter.net/exp4j/
String str = formulafield.getText();
str.toLowerCase();
String [] arr = str.split("y = ");
String formula = arr[0];
Expression e = new ExpressionBuilder(formula)
.variables("x")
.build()
.setVariable("x", 2.3);
double result = e.evaluate();
Это отработанная вещь вычисление выражений.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Проблема следующая: когда я добавляю новый комментарий под публикацией на своем сайте, он отображается нормально, но если вдруг зажать какую-либо...
Как лучше перегружать оператор +: через friend функцию внутри класса или как inline функцию вне класса?