我有一个向量,其中存储有数字和运算符,1 + 2 + 3 + 4等。 我已经用某种方式编码,每个“ +”都将从类中创建一个对象,该类将操作数作为参数并将其替换为单个对象,
如果向量中有1,+,2
if(vector.get(index).toString().matches("\\+")){
vector.remove(index);
vector.remove(index);
vector.remove(index);
vector.add(index,new PlusFunctionElement(vector.get(index-1).toString(),vector.get(index+1).toString()));
}
此代码可以正常工作,并将所有3个矢量对象替换为一个PlusFunction对象,但是当我在矢量中添加更多对象时,例如1 + 2 + 3 + 4 + 5,它成对累加,剩下3,+ ,7,+,5
这里是我的PlusFunctionElement类,
public class PlusFunctionElement{
private String value1,value2;
public PlusFunctionElement(String value1, String value2) {
this.value1 = value1;
this.value2 = value2;
}
public String toString(){
double num1,num2,result;
num1=Double.valueOf(value1);
num2=Double.valueOf(value2);
result=num1+num2;
String output= String.valueOf(result);
return output;
}
我在这里想念什么吗?还是矢量限制?在此先感谢:)
PS:-我在plus函数中使用了字符串参数,因为稍后需要传递诸如x,y之类的变量,而且所有数字都保存为来自单独类的对象,而不是字符串。