首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java Regex replaceAll()

Java Regex replaceAll()
EN

Stack Overflow用户
提问于 2015-03-22 08:05:58
回答 3查看 58关注 0票数 0

下面的代码通过删除变量项、求幂运算符和次数来解析多项式表达式,以确定多项式的系数。

代码:

代码语言:javascript
复制
String expression = "x^10 + 6x^2 + 9";

expression = expression.replaceAll("(\\^\\d)?", ""); //fix
expression = expression.replaceAll("x", "(1)");

System.out.print(expression); 

结果:

代码语言:javascript
复制
(1)0 + 6(1) + 9 //intended result: (1) + 6(1) + 9

如果某个项的度数为10,则该方法将简单地删除度数的第一位数字。如果该度数为10,则该方法将简单地删除该度数的第一位数。如果度数为>= 10,则该方法将简单地删除该度数的第一位。有没有办法替换整个数字(在本例中是10)。

EN

回答 3

Stack Overflow用户

发布于 2015-03-22 08:14:22

这也应该包括超过一个数字的数字。(%d后的+)

代码语言:javascript
复制
    String expression = "x^10 + 6x^2 + 9";

    expression = expression.replaceAll("(\\^\\d+)?", ""); //fix
    expression = expression.replaceAll("x", "(1)");

    System.out.print(expression); 
票数 2
EN

Stack Overflow用户

发布于 2015-03-22 08:12:09

只需在\d后面添加一个+即可。

+表示一个或多个重复。

代码语言:javascript
复制
expression = expression.replaceAll("(\\^\\d)?", ""); //fix

变成了

代码语言:javascript
复制
expression = expression.replaceAll("(\\^\\d+)?", ""); //fix
票数 1
EN

Stack Overflow用户

发布于 2015-03-22 08:11:48

您的正则表达式仅选择了一个数字。添加+以选择至少一个数字:\\^\\d+

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29189488

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档