首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于正确数学操作的Java

用于正确数学操作的Java
EN

Stack Overflow用户
提问于 2018-02-22 21:29:54
回答 1查看 90关注 0票数 0

这一准则:

代码语言:javascript
复制
("[(\\d){1,} (*|+|-|/){1} (\\d){1,}]")

应该抓住所有正确的数学运算,

(例如:"3+4“、"3+3*6+2/3-6*434234+5”、"345345+2342/3/3/4-5")

但不应该抓错人。

(例如:“3+-2”、"+1“、"456+/5”、"3+4+5+")

但它似乎根本没有捕捉到任何输入。这里怎么了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-22 21:33:51

您忘记了必须用反斜杠对未转义的分隔符进行转义:

代码语言:javascript
复制
[(\\d){1,} (*|+|-|\/){1} (\\d){1,}]
                  ^ Escaped with backslash

编辑:

在Java中,您需要使用两个反斜杠,因为反斜杠在Java中也是一个转义字符:

代码语言:javascript
复制
Matcher match = Pattern.compile("[(\\\\d){1,} (*|+|-|\\/){1} (\\\\d){1,}]").matcher("3+3*6+2/3-6*434234+5");
String s = "";
while (match.find())
    s += match.group() + "\n";
System.out.println(s);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48937510

复制
相关文章

相似问题

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