允许 jTextField 为空?

Allow a jTextField to be blank?

我创建了一个简单的应用程序,用户在其中输入两个值并使用答案自动更新文本字段并检查输入是否为数字。

检查用户输入的代码(从这个问题中使用:How to Auto Calculate input numeric values of Text Field in JAVA)如下:

private boolean isDigit(String string) 
{
    for (int n = 0; n < string.length(); n++) 
    {
        //get a single character of the string
        char c = string.charAt(n);

        if (!Character.isDigit(c)) 
        {
            //if its an alphabetic character or white space
            return false;
        }
    }
    return true;
}

它可以工作,但是当文本字段为空时,会出现以下错误消息:java.lang.NumberFormatException: For input string: ""

如何更改我使用的代码,以便可接受空白文本字段并且不会产生错误?

你可以在开头加一个if来检查字符串是否合法

private boolean isDigit(String string) 
{
    if(string == null || string.isEmpty()) {
        return false;
    }

    for (int n = 0; n < string.length(); n++) 
    {
        //get a single character of the string
        char c = string.charAt(n);

        if (!Character.isDigit(c)) 
        {
            //if its an alphabetic character or white space
            return false;
        }
    }
    return true;
}

您不能对空字符串或空格应用 isDigit()。 在继续逻辑之前,您可以使用 'if' 条件检查字符串是否为空,如下所示:

private boolean isDigit (String string) {
       if (string.length()>=1) {
              for (int n = 0; n < string.length(); n++) { 
                     //logic
              }
       }else { 
              return false;
       }
}