我需要评估一个 n 变量多项式字符串
str = "-3a^5b^2c^3 + 12bc + xy + yz + xyz + 123";
.
变量值input = "a=-2,b=-1,c=1,x=2,x=3,z=4";
到目前为止我能做的:
1.) 分解str
成单独的术语,如"-3a^5b^2c^3"
, "12bc"
, "xy"
, "yz"
,"xyz"
如下:
String[] terms = poly.split("-|\\+");
Step1 之后:
terms[] = {"-3a^5b^2c^3", "12abc", "xy", "yz", "xyz"};
2.) 提取变量值input
如下:
String[] parts = input.split(",");
String[] variables = new String[parts.length];
// Getting inputs
for (int i = 0; i < parts.length; i++)
{
String s = parts[i].substring(parts[i].indexOf('=')+1);
variables[i] = s;
}
在第 2 步之后:
variables[] = {-2, -1, 1, 2, 3, 4};
我计划评估terms[]
数组的各个术语并相应地添加/减去它们。但是我应该如何分解"-3a^5b^2c^3"
成3
, a^5
, b^2
, c^2
?
手动执行会消耗过多的代码行和时间,并且会使代码看起来很复杂。
我是 Java 和正则表达式的新手,无法通过正则表达式找到它的解决方案。