gpt4 book ai didi

java - 一个方法可以有多个不同类型的返回值吗?

转载 作者:太空狗 更新时间:2023-10-29 16:23:07 27 4
gpt4 key购买 nike

简而言之,我有一个选择随机操作并生成两个随机数的方法,然后它从中创建一个表达式作为字符串并更改 TextView 以显示该表达式,如下所示:

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 nov2Exp = novnum1 + op1 + novnum2 + " = ";

setContentView(R.layout.gameview);

TextView display = (TextView) findViewById(R.id.exp);

display.setText(nov2Exp);

return nov2Exp;
}

我有第二种方法,它会根据按下的按钮将数字作为字符串放入第二个 TextView 中:

@Override
public void onClick(View c) {

switch (c.getId())
{
case R.id.keypad_1:
TextView prs1 = (TextView) findViewById(R.id.ans);
if (prs1.getText().equals("?"))
{
prs1.setText("1");
}
else
{
prs1.append("1");
}

break;

我需要的是,当用户按下另一个按钮时,将计算表达式的答案并将其与答案 TextView 的内容进行比较,我已经对数学表达式解析进行了一些研究,事实证明它对我来说太复杂了实现。我需要以某种方式从我的方法中返回不同类型的多个变量还是完全错误?谁能帮帮我?

enter image description here

最佳答案

您可以定义自定义数据类型:

public class Result {
private String result1;
private int result2;
// etc.
}

并让您的方法返回此类型的对象。

编辑:

你可以这样做:

public int Nov2()
{
char[] ops = new char[] {'+', '-', '*', '/'};
int i = rand.nextInt(4-0) + 0;
char op1 = ops[i];

int novnum1 = rand.nextInt(101-1) + 1;

int novnum2 = rand.nextInt(101-1) + 1;

int result = 0;

switch(op1) {
case '+': result = novnum1 + novnum2; break;
case '-': result = novnum1 - novnum2; break;
case '*': result = novnum1 * novnum2; break;
case '/': result = novnum1 / novnum2; break;
}

String nov2Exp = novnum1 + " " + op1 + " " + novnum2 + " = ";

setContentView(R.layout.gameview);

TextView display = (TextView) findViewById(R.id.exp);

display.setText(nov2Exp);

return result;
}

此方法将为您生成一个新表达式,将其显示在屏幕上,然后返回结果。您可以将其存储在某处,当用户单击按钮时将其与他的输入进行比较。

关于java - 一个方法可以有多个不同类型的返回值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9555476/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com