在字符串中的每一个或两个字符后插入空格

时间:2012-05-11 09:43:23

标签: java math spacing infix-notation

我需要编写代码来纠正用户输入。输入是中缀形式的数学表达式。 为了使我的计算正确,我需要每个操作数与操作员间隔开。

请你帮我写一个方法,提供以下预期结果。

预期投入:13 * 21-5 + 33 预期产出:13 * 21 - 5 + 33

我做过的研究:我只能找到如何在字符串中的每个字符之间添加空格,这对于计算具有双位数值的表达式是不行的。即:1 3 * 2 1 - 5 + 3 3. How to insert Space after every Character of an existing String in Java?

谢谢

2 个答案:

答案 0 :(得分:1)

此解决方案规范化每个运算符周围的空白。

return expr.replaceAll("(?<=\\d)\\s*([-+/*])\\s*(?=\\d)", " $1 ");

答案 1 :(得分:1)

使用正则表达式查找数字然后用空格包围它们:

string.replaceAll("\\d+", " $0 ").trim(); // trim in case numbers are first/last