2

在 JAVA 中:-

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

我想到了遍历字符串查找插入符号'^'的位置,得到插入符号之后的数字,其中最高的是等式的度数。但是,如果这些数字不止一个数字怎么办?实现这一点将设计一个方程解析器!

那你能告诉我其他方法吗?

编辑:

我想知道它可以完成的方式,例如使用评论之一中所述的正则表达式而不是代码。

4

2 回答 2

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;
}

我们正在查找 的所有匹配项(?<=\^)\d+\d+匹配一个由 1 个或多个数字组成的字符串,并且(?<=\^)肯定的后向查找,以确保这些数字前面有一个插入符号(但在匹配中不包括这个插入符号)。

于 2013-08-06T16:05:26.803 回答
2

您可以使用以下正则表达式来匹配插入符号后包含的值:

\^\d+

它将显式匹配每个值,然后您可以简单地找到匹配的最大值并返回它。

( Java正则表达式教程)

于 2013-08-06T16:05:56.423 回答