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语句中?
我会在您解析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方法(以)