我有像(x == y), (t != s), (a = b + c)
. 现在,我需要得到左边的字母x
,和右边的字母, t
, , 。a
y
s
b
c
为此,我正在执行以下操作:
while(//{condition}){
eqn = stmnt.split("=");
getVars(eqn[0])); // first while round should return x, then t, and so on.
getVars(eqn[0])); // first while round should return y, then s, then b, c.
}
private static ArrayList<String> getVars(String str){
ArrayList<String> variables = new ArrayList<String>();
Pattern pattern = Pattern.compile("([a-zA-Z]+)");
Matcher matcher = pattern.matcher(str);
while (matcher.find())
{
variables.add(matcher.group());
}
return variables;
}
现在,此代码适用于 (a = b + c) 等方程。对于前两个方程,它只返回左侧变量 (x, t),而不返回右侧变量 (y, s)。
我在这里做错了什么?
任何帮助将不胜感激!