for (int i = 0; i < fields.length; i++)
{
for (int j = 0; j < fields[i].length; j++)
{
if (fields[i][j].getText().length() == 0) //IF ZERO OR NOT A NUMBER
{
JOptionPane.showMessageDialog(null, "Answers missing");
return;
}
answers[i][j] = Integer.parseInt(fields[i][j].getText());
}
}
如何断言用户输入一个数字(零除外)?是否可以使用OR运算符(||)将其添加到if语句中?
答案 0 :(得分:1)
我会在解析int的行周围添加一个try-catch块,并让它捕获NumberFormatException。这样,如果用户没有输入具有“可解析整数”的字符串,则程序不会崩溃。您可以将JOptionPane消息放入catch块中。这也将捕获字符串长度为0的情况,因此您可能不需要if语句。您可以使用if语句轻松测试数字是否为零。
以下是我编码的方法。
for (int i = 0; i < fields.length; i++)
{
for (int j = 0; j < fields[i].length; j++)
{
try {
int probableAnswer = Integer.parseInt(fields[i][j].getText());
if(probableAnswer == 0) {
JOptionPane.showMessageDialog(null, "Answers missing");
}
else {
answers[i][j] = probableAnswer;
}
} //end try block
catch(NumberFormatException e) {
JOptionPane.showMessageDialog(null, "Answers missing");
}
}
}
http://docs.oracle.com/javase/tutorial/essential/exceptions/index.html
http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Integer.html#parseInt(java.lang.String)