我在我的代码中遇到了一个非常奇怪的问题。我有一个简单的温度转换器,用户输入摄氏度,按下“转换”按钮后会显示华氏温度。如果用户输入无效内容(任何不是数字或小数点的内容),则会显示错误对话框。 代码:
btnConvert.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
String tempFahr = (String) enterDegreesC.getText();
double tempF = Double.valueOf(tempFahr);
double tempFConverted = tempF * 1.8 +32;
displayDegreesF.setText(tempFConverted + " Farenheit");
}
catch (NumberFormatException nfe) {
JOptionPane.showMessageDialog(frmTemperatureConverter, "Please Enter a Number.", "Conversion Error", JOptionPane.ERROR_MESSAGE);
}
}
});
代码非常简洁明了,工作得很好,除了一个问题。当我输入数字后跟字母"f"或"d"的组合时,没有显示错误对话框,并且使用字母前面的数字来计算华氏温度。这仅在使用"d"和"f"(以及"D"和"F")时发生,而不是其他任何字母。我对此感到困惑。为什么只有这两个字母在数字后面会导致异常未被抛出并进行计算?