Оценить математические выражения, которые имеют процентJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Оценить математические выражения, которые имеют процент

Сообщение Anonymous »

Я делаю калькулятор Java с графическим интерфейсом и ищу функцию, которая оценивает математическое выражение из строки. Я нашел, как оценить математическое выражение, приведенное в строковой форме?. После упрощения, потому что мой калькулятор не такой сложный, я закончил этой функцией: < /p>

Код: Выделить всё

// Esto es de StackOverflow, solo que quitando cosas que no se usaban
// https://stackoverflow.com/questions/3422673/how-to-evaluate-a-math-expression-given-in-string-form
public double calcular() {

// Obtener la expresión matemática como una cadena
String str = this.out.getText();

// Crear un nuevo objeto anónimo para evaluar la expresión
return new Object() {
int pos = -1, ch;

// Método para obtener el siguiente caracter de la cadena
void nextChar() {
ch = (++pos < str.length()) ? str.charAt(pos) : -1;
}

// Método para verificar si el caracter actual coincide con el pasado por
// parámetro
boolean eat(int charToEat) {
while (ch == ' ')
nextChar();
if (ch == charToEat) {
nextChar();
return true;
}
return false;
}

// Método principal para evaluar la expresión
double parse() {
nextChar();
double x = parseExpression();
if (pos < str.length())
throw new RuntimeException("No esperado: " + (char) ch);
return x;
}

// Método para evaluar la expresión
double parseExpression() {
double x = parseTerm();
for (;;) {
if (eat('+'))
x += parseTerm(); // suma
else if (eat('-'))
x -= parseTerm(); // resta
else
return x;
}
}

// Método para evaluar los términos
double parseTerm() {
double x = parseFactor();
for (;;) {
if (eat('*'))
x *= parseFactor(); // multiplicación
else if (eat('/'))
x /= parseFactor(); // división
else
return x;
}
}

// Método para evaluar los factores
double parseFactor() {
double x;
int startPos = this.pos;
if (eat('+'))
return +parseFactor(); // más unario
if (eat('-'))
return -parseFactor(); // menos unario
while ((ch >= '0' && ch 
Вот как она запускает функцию < /p>
boton_equ.setOnMouseClicked((event) -> {
this.out.setText(String.valueOf(calcular()));
});
Я хотел добавить функцию, которая, если строка равна («5*2%»), показывает результат, то есть может обрабатывать символы % . Как я могу добавить эту функциональность в этот код?

Подробнее здесь: https://stackoverflow.com/questions/759 ... ercentages
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как анализировать математические выражения в C#? [дубликат]
    Anonymous » » в форуме C#
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Как оценить вложенные логические/логические выражения в Python?
    Anonymous » » в форуме Python
    0 Ответы
    31 Просмотры
    Последнее сообщение Anonymous
  • Как правильно отображать большие вложенные математические уравнения с помощью MathML?
    Anonymous » » в форуме CSS
    0 Ответы
    52 Просмотры
    Последнее сообщение Anonymous
  • Программа не выполняет математические вычисления [закрыто]
    Anonymous » » в форуме C++
    0 Ответы
    40 Просмотры
    Последнее сообщение Anonymous
  • Как проверить математические сигналы в php
    Anonymous » » в форуме Php
    0 Ответы
    44 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»