のような文字列があります(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) のような方程式でうまく機能しています。前の 2 つの方程式では、左側の変数 (x、t) のみが返され、右側の変数 (y、s) は返されません。
ここで何が間違っていますか?
どんな助けでも大歓迎です!