以下代码通过删除变量项,取幂运算符和degree来解析多项式表达式,以便确定多项式的系数。
代码:
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)。
答案 0 :(得分:2)
这应涵盖多个数字的数字。 (+ d之后)
String expression = "x^10 + 6x^2 + 9";
expression = expression.replaceAll("(\\^\\d+)?", ""); //fix
expression = expression.replaceAll("x", "(1)");
System.out.print(expression);
答案 1 :(得分:1)
只需在+
之后加\d
+
表示一次或多次重复。
expression = expression.replaceAll("(\\^\\d)?", ""); //fix
变为
expression = expression.replaceAll("(\\^\\d+)?", ""); //fix
答案 2 :(得分:0)
您的正则表达式只选择一位数。添加+
以选择至少一位数:\\^\\d+