如何在Java中解析以String形式输入的等式?

时间:2016-10-10 15:43:16

标签: java parsing equation

我正在制作一个程序,我需要解析方程式,如2 * x2 + A x + 1 = R(x的最大指数为10)。另外,R是一个常量,所以我只能在没有它的情况下解析字符串。我正在尝试将每个b x ^ n解析为一个单独的类:

class Equation{
    int coefficient;
    int exponent;
}

然后将所有方程式放入ArrayList中。为了获得x的指数,我正在做:

    if (string.charAt(i) == 'x' && string.charAt(i + 1) == '^') {
        if (string.charAt(i + 3) == '0') {
            pomocna.potencija = 10;
        }
        else
            pomocna.potencija = Character.getNumericValue(string.charAt(i + 2));
    }
    if (string.charAt(i) == 'x' && string.charAt(i + 1) == '+'){
        pomocna.potencija = 1;
    }

因为指数可以是1(然后它不是写的),2-9和10。

然而,我似乎无法做的是在b * x ^ n中得到b,因为b也可以是十进制数。

我怎样才能找到每个x的b?谢谢。

0 个答案:

没有答案