gpt4 book ai didi

java - 为什么我的 .isEmpty 在此代码中不起作用?

转载 作者:行者123 更新时间:2023-12-01 22:10:22 24 4
gpt4 key购买 nike

我想编写一个检查程序,检查用户是否在按下按钮之前写下一个数字进行检查。

public class MainActivity extends AppCompatActivity {
int randomNumber;

public void makeToast(String string) {
Toast.makeText(MainActivity.this, string, Toast.LENGTH_LONG).show();
}

public void guess (View view) {
final EditText showNumber = findViewById(R.id.showNumberEditText);

int guessInt = Integer.parseInt(showNumber.getText().toString());

if (showNumber.getText().toString().isEmpty()) {
makeToast("Pleas Enter a Number!");
} else if(guessInt > randomNumber) {
makeToast("Lower");
} else if (guessInt < randomNumber) {
makeToast("Higher");
} else {
makeToast("Correct! Try Again!");

Random random = new Random();
randomNumber = random.nextInt(20) + 1;
}
}

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Random random = new Random();
randomNumber = random.nextInt(20) + 1;
}
}

最佳答案

您必须考虑到 EditText 可能尚未设置任何值,因此本质上可能包含 Null,因此 .toString().isEmpty() 可能会失败带有NullPointerException。另外如果它有文本,你还需要考虑它甚至可能不是数字,所以需要将其转换为整数。而且字符串不能直接与整数进行比较,因此必须进行这种整数转换。

尝试下一个代码:

public void guess (View view) {
final EditText showNumber = findViewById(R.id.showNumberEditText);

Integer guessInt = convertToInteger(showNumber.getText());

if (guessInt == null) {
makeToast("Pleas Enter a Number!");
}else if(guessInt > randomNumber) {
makeToast("Lower");
} else if (guessInt < randomNumber) {
makeToast("Higher");
} else {
makeToast("Correct! Try Again!");
Random random = new Random();
randomNumber = random.nextInt(20) + 1;
}
}

public static Integer convertToInteger(final Editable source) {
if (source != null) {
try {
final String text = source.toString();
return Integer.parseInt(text);
}
catch (NumberFormatException ex) {
ex.printStackTrace();
}
}

return null;
}

关于java - 为什么我的 .isEmpty 在此代码中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58663950/

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