方法内的变量

时间:2012-03-04 02:59:02

标签: java android

我有这个方法:

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提供了操作,我怎样才能使表达式的结果可以通过这个方法访问程序的其余部分?

1 个答案:

答案 0 :(得分:2)

你可以使用一个设置整数和操作的方法创建一个名为Expression的类或类似的类;然后返回此类的对象。这个类可以有一个toString()方法,它返回按照你上面的方式格式化的对象。

此外,与您的问题不太相关;但是在你的代码片段中,你不需要novnum1strnovnum2str,因为+操作会自动将其参数转换为字符串,如果其中一个是字符串。所以你可以写novnum1 + op1 + novnum2 + " = "

修改:

因此更详细地说,Expression类可以有

  • 两个整数和运算符的成员变量;
  • 一种随机初始化它们的方法,就像您发布的方法的前5行一样;
  • 一个toString()方法,它格式化这三个并返回您调用的字符串nov2Exp;
  • 具有calculate()语句的switch方法,用于计算表达式的值。
  • 获取所有三个成员变量,因此您可以在需要的任何地方使用它们。