-1

我有像(x == y), (t != s), (a = b + c). 现在,我需要得到左边的字母x,和右边的字母, t, , 。aysbc

为此,我正在执行以下操作:

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)。

我在这里做错了什么?

任何帮助将不胜感激!

4

1 回答 1

0

对于初学者:-第二个getVars(eqn[0]));必须是getVars(eqn[1]));

while(//{condition}){
  eqn = stmnt.split("=");
  getVars(eqn[0])); // first while round should return x, then t, and so on. 
  getVars(eqn[1])); // first while round should return y, then s, then b, c.
}
于 2013-02-28T11:17:07.837 回答