【发布时间】:2016-03-14 09:58:22
【问题描述】:
我有一个程序可以实现这一点:
Input: "(-123)+(200)" -> String
Output: 77 -> Int
Input: "((-123)+(200))*((2)+(1))"
Output: 231
嗯,我有代码,但我不知道使用正则表达式是否是个好主意。老师给了我一个分隔String的函数,例如:
int n = StringUtils.exprMainOperator ("(-123)+(200)");
n = 7;
我的想法是通过'n'将每个字符串分隔为一个子字符串,但我不知道如何递归地实现这一点。任何想法?请不要在代码中,所以我可以学习,谢谢。
【问题讨论】:
-
如果没有像 "123" 这样的运算符,StringUtils.exprMainOperator 会返回什么
-
return string.length();在这种情况下是 3;
-
StringUtils.exprMainOperator是否考虑括号和操作的优先级? -
是的,例如这个 String int n = StringUtils....((-123)+(200))*((2)+(2)); n = 14,此方法将等价括号中的表达式分开。