如何在Java中提取多项式系数?

如何在Java中提取多项式系数?,java,string,text-parsing,polynomial-math,Java,String,Text Parsing,Polynomial Math,以字符串-2x^2+3x^1+6为例,如何从存储在字符串中的该等式中提取-2、3和6 String polynomial= "-2x^2+3x^1+6"; String[] parts = polynomial.split("x\\^\\d+\\+?"); for (String part : parts) { System.out.println(part); } 这应该行得通。样本输出 polynomial= "-2x^2+3x^1+6" O

以字符串
-2x^2+3x^1+6
为例,如何从存储在字符串中的该等式中提取
-2
3
6

    String polynomial= "-2x^2+3x^1+6";
    String[] parts = polynomial.split("x\\^\\d+\\+?");
    for (String part : parts) {
        System.out.println(part);
    }
这应该行得通。样本输出

polynomial= "-2x^2+3x^1+6"
Output:
-2
3
6 
polynomial = "-30x^6+20x^3+3"
Output:
-30
20
3

没有给出确切的答案,但给出了一些提示:

  • 使用meyhod:

    将所有
    -
    替换为
    +-

  • 使用方法:

  • 现在,每个索引值可以单独拆分:

    String str2 = arr[0];
    // str2 = -2x^2;
    // split with x and get vale at index 0
    

我已尝试使用+作为分隔符来提取-2x2 3x和6。那么如何使用分隔符“x”通过提取运行“-2x^2”?(顺便问一下,您是否有计划如何处理例如3x^3-2x^2-3?谢谢Manoj,但如果出现-sign示例“-2x^2-3x^1+6”,这将不起作用@Manish做了一个小改动。现在应该可以用了。我已经选择了+号匹配。这样,负号也会被匹配。我想知道如果序列输入为6+3x^1-2x^2会怎么样。在这种情况下,匹配模式会改变。@Manish ya。。然后模式会改变。。如果是这种情况,我认为更好的方法是rst根据+/-符号分割,然后从分割的部分进一步提取数字
String str2 = arr[0];
// str2 = -2x^2;
// split with x and get vale at index 0