繁体   English   中英

java:将算术表达式拆分为令牌

[英]java: Splitting arithmetic expresssion into tokens

您如何用空格分隔算术表达式,例如我有22+(33 * 1)这个表达式,我想用相同的字符串(返回字符串)中的运算符之间的空格来分隔它们,例如22 +(33 * 1),我使用StringTokenizer的方式

您的规则比您想的要简单。 可能是正确的Java:

expr = expr.replaceAll('+', ' + ')
           .replaceAll('-', ' - ')
           .replaceAll(')', ' ) ')
           //etc
           .replaceAll(' ', '  '); //remove any double spaces added.

那不容易。 您必须解析Expression并构建令牌树。 您最终表现得像一个解析器。 然后,您重新创建表达式,并在每个元素之间插入一个空格。
尝试搜索解析算术表达式

您可以使用多个String.replaceAll语句将运算符替换为带空格的运算符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM