我有这个方法:
public String Nov2()
{
String[] ops = new String[] {" + ", " - ", " * ", " / "};
int i = rand.nextInt(4-0) + 0;
String op1 = ops[i];
int novnum1 = rand.nextInt(101-1) + 1;
int novnum2 = rand.nextInt(101-1) + 1;
String novnum1str = Integer.toString(novnum1);
String novnum2str = Integer.toString(novnum2);
String nov2Exp = novnum1str + op1 + novnum2str + " = ";
setContentView(R.layout.gameview);
TextView display = (TextView) findViewById(R.id.exp);
display.setText(nov2Exp);
return nov2Exp;
}
它返回字符串nov2Exp,但我想要做的是实际计算出该方法生成的表达式。 novnum1和novnum2是我的两个术语,op1提供了操作,我怎样才能使表达式的结果可以通过这个方法访问程序的其余部分?
答案 0 :(得分:2)
你可以使用一个设置整数和操作的方法创建一个名为Expression
的类或类似的类;然后返回此类的对象。这个类可以有一个toString()
方法,它返回按照你上面的方式格式化的对象。
此外,与您的问题不太相关;但是在你的代码片段中,你不需要novnum1str
和novnum2str
,因为+操作会自动将其参数转换为字符串,如果其中一个是字符串。所以你可以写novnum1 + op1 + novnum2 + " = "
。
修改:
因此更详细地说,Expression
类可以有
toString()
方法,它格式化这三个并返回您调用的字符串nov2Exp
; calculate()
语句的switch
方法,用于计算表达式的值。