0

是否可以检查NumberFormatException输入字符串:""

我试图编写我的程序,以便如果用户没有输入任何值,则会出现错误消息而不是 NumberFormatException:

if(pasientNavnFelt.getText() == "" || pasientNrFeIt.getText() == "")
{
  utskriftsområde.setText("ERROR, insert values");
}

if(pasientNavnFelt.getText() != "" || pasientNrFeIt.getText() != "")
{ 
  // rest of code here if the program had values in it
}

我也试过空:

if(pasientNavnFelt.getText() == null || pasientNrFeIt.getText() == null)
{
  utskriftsområde.setText("ERROR, insert values");
}

if(pasientNavnFelt.getText() != null || pasientNrFeIt.getText() != null)
{ 
  // rest of code here if the program had values in it
}

我仍然得到:

Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: ""

如果该程序具有值,则该程序可以正常工作。

4

3 回答 3

2

永远不要将字符串与==. ==检查两个对象是否相同,而不是两个对象具有相同的字符。用于equals()比较字符串。

也就是说,要验证字符串是否为有效整数,您确实需要捕获异常:

try {
    int i = Integer.parseInt(s);
    // s is a valid integer
}
catch (NumberFormatException e) {
    // s is not a valid integer
}

这是基本的 Java 东西。阅读有关异常的 Java 教程

于 2012-10-27T15:44:04.643 回答
1

尝试:

if( pasientNavnFelt.isEmpty() || pasientNrFeIt.isEmpty()) {
   utskriftsområde.setText("ERROR, insert values");
}
else {
   ...
}
于 2012-10-27T15:42:27.643 回答
0

如果条件错误,您的第二个。你想说,如果有一个空值,错误,否则做点什么。你是说如果有一个空错误,那么如果它们中的任何一个不为空,就做剩下的。两个字符的改变是改变第二个“||” 到一个“&&”。但你可能想要的实际上是:

   if(pasientNavnFelt.getText() == null || pasientNrFeIt.getText() == null)
        {
            utskriftsområde.setText("ERROR, insert values");
        }
   else 
       { <rest of code here if the program had values in it>}
于 2012-10-27T15:44:22.477 回答