找出字符串中的等式程度?

Fro*_*yon 2 java string equation-solving

在JAVA中: -

给出字符串中的等式:String equation = "4*x^3-19*x^2+2*x-1=0";,如何找到它的度数?

我想到了通过字符串查找插入符号'^'的位置,得到插入符号之后的数字,其中最高的是等式的程度.但如果数字超过一位数怎么办?实现这个就是设计一个方程解析器!

所以你能告诉我其他任何方式吗?

编辑:

我想知道它的完成方式,例如使用其中一条注释而不是代码中所述的正则表达式.

ars*_*jii 5

你可以尝试这样的事情:

int degree = 1;
Matcher m = Pattern.compile("(?<=\\^)\\d+").matcher(equation);

while (m.find()) {
    int exp = Integer.parseInt(m.group());

    if (exp > degree)
        degree = exp;
}
Run Code Online (Sandbox Code Playgroud)

我们找到了所有的比赛(?<=\^)\d+.\d+匹配一个或多个数字的字符串,并且(?<=\^)是一个正向的lookbehind,以确保这些数字前面有一个插入符号(但在匹配中不包括此插入符号).

  • @JasonC坦率地说,如果他不想要一个功能齐全且可测试的答案,那么就不应该问SO了. (2认同)