2012-03-04 91 views
-1

我有这样的方法:内部方法变量

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

你的问题对我没有意义。你提到的所有变量都是本地的;你已经访问过其中的一个,从某种意义上说,你有关于如何访问其他人的问题? – 2012-03-04 03:03:16

+0

这是否更有意义? – nexus490 2012-03-04 03:07:49

+0

你是说你想让这个方法返回一个int(或者可能是一个float或double)而不是一个String?你知道novnum1,novnum2和op1是什么。为什么不能只用一个开关块来计算值,这个开关块的例子是不同的操作符? – 2012-03-04 03:23:16

回答

2

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

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

编辑:

因此,在更详细地,Expression类可能对两个整数和运营商

  • 成员变量;
  • 随机初始化它们的方法,就像您发布的方法的前5行一样;
  • a toString()将这三个格式化并返回您称为nov2Exp的字符串的方法;
  • a calculate()方法与switch语句,它计算表达式的值。
  • 所有三个成员变量的获得者,所以你可以在需要的地方使用它们。
+0

您能详细解释一下这个答案吗,您提出的究竟是在Expression类中完成的? – nexus490 2012-03-04 03:10:22