有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java是否允许jTextField为空?

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

检查用户输入的代码(用于此问题: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: ""

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


共 (2) 个答案

  1. # 1 楼答案

    您可以在开始时添加一个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;
    }
    
  2. # 2 楼答案

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

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