多项式字符串 - 识别常量

Polynomial String - Identify Constants

在读取像“25x^2 + 12x^-10 - 3 - 73x^8”这样的多项式时,我想找到常量(在本例中为“3”)并通过附加“x^0”对其进行操作”。我很清楚如何附加它,但不确定如何实际识别多项式中的常量子串。

一种可能的方法是使用 str.contains("3+") / str.contains("3-") 手动添加 if 语句。但是,这只是对解决方案进行硬编码。

所以,我想知道是否可以使用某种内置方法或正则表达式。我在考虑 str.contains("{1-999}+")str.contains("{1-999}-") 的思路,它们识别指定范围内的整数,后跟 + 或 - 符号。

这就是我要找的东西:

if(poly.contains("{1-999}+")) {
     poly = poly.replace("x+", "x^0+");
} 
if(poly.contains("{1-999}-")) {
     poly = poly.replace("x+", "x^0-");
} 

您可以使用正则表达式将所有连续的数字替换为前后的 space(除非它们位于字符串的开头或结尾)。

String str = "25x^2 + 12x^-10 - 3 - 73x^8";
System.out.println(str.replaceAll("(?<=^| )\d+(?= |$)", "[=10=]x^0"));