在 JAVA 中:-
给定一个字符串中的方程:String equation = "4*x^3-19*x^2+2*x-1=0";
,如何找到它的度数?
我想到了遍历字符串查找插入符号'^'的位置,得到插入符号之后的数字,其中最高的是等式的度数。但是,如果这些数字不止一个数字怎么办?实现这一点将设计一个方程解析器!
那你能告诉我其他方法吗?
编辑:
我想知道它可以完成的方式,例如使用评论之一中所述的正则表达式而不是代码。
在 JAVA 中:-
给定一个字符串中的方程:String equation = "4*x^3-19*x^2+2*x-1=0";
,如何找到它的度数?
我想到了遍历字符串查找插入符号'^'的位置,得到插入符号之后的数字,其中最高的是等式的度数。但是,如果这些数字不止一个数字怎么办?实现这一点将设计一个方程解析器!
那你能告诉我其他方法吗?
编辑:
我想知道它可以完成的方式,例如使用评论之一中所述的正则表达式而不是代码。
你可以尝试这样的事情:
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 个或多个数字组成的字符串,并且(?<=\^)
是肯定的后向查找,以确保这些数字前面有一个插入符号(但在匹配中不包括这个插入符号)。