下面的代码通过删除变量项、求幂运算符和次数来解析多项式表达式,以确定多项式的系数。
代码:
String expression = "x^10 + 6x^2 + 9";
expression = expression.replaceAll("(\\^\\d)?", ""); //fix
expression = expression.replaceAll("x", "(1)");
System.out.print(expression); 结果:
(1)0 + 6(1) + 9 //intended result: (1) + 6(1) + 9如果某个项的度数为10,则该方法将简单地删除度数的第一位数字。如果该度数为10,则该方法将简单地删除该度数的第一位数。如果度数为>= 10,则该方法将简单地删除该度数的第一位。有没有办法替换整个数字(在本例中是10)。
发布于 2015-03-22 08:14:22
这也应该包括超过一个数字的数字。(%d后的+)
String expression = "x^10 + 6x^2 + 9";
expression = expression.replaceAll("(\\^\\d+)?", ""); //fix
expression = expression.replaceAll("x", "(1)");
System.out.print(expression); 发布于 2015-03-22 08:12:09
只需在\d后面添加一个+即可。
+表示一个或多个重复。
expression = expression.replaceAll("(\\^\\d)?", ""); //fix变成了
expression = expression.replaceAll("(\\^\\d+)?", ""); //fix发布于 2015-03-22 08:11:48
您的正则表达式仅选择了一个数字。添加+以选择至少一个数字:\\^\\d+
https://stackoverflow.com/questions/29189488
复制相似问题