java:将算术表达式拆分为标记

时间:2012-11-22 23:53:45

标签: java string stringtokenizer

如何将算术表达式与空格分开,例如我有这个表达式22+(33 * 1)我想用相同字符串中的运算符之间的空格分割它们(返回一个字符串),如22 +(33 * 1) )顺便说一下我使用StringTokenizer

3 个答案:

答案 0 :(得分:1)

你认为你的规则比较简单。可能正确的java:

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

答案 1 :(得分:0)

这不容易。你必须解析表达式和 建立一个令牌树。你最后表现得像 解析器。然后重新创建表达式并在其间插入空格 每个元素。
尝试搜索解析算术表达式

答案 2 :(得分:0)

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