Servlets 检查request.getParameter是否包含字符串值或整数

Servlets 检查request.getParameter是否包含字符串值或整数,servlets,Servlets,我正在尝试使用两个不同的值进行搜索,一个是整数(sin),另一个是lastName(String) 我已经能够保存这两个,但如何检查它是否是字符串 这是我的密码: if (request.getParameter("search") != null) { String search = request.getParameter("search"); int searchSin = Integer.getInteger(request

我正在尝试使用两个不同的值进行搜索,一个是整数(sin),另一个是lastName(String) 我已经能够保存这两个,但如何检查它是否是字符串 这是我的密码:

if (request.getParameter("search") != null) {
                String search = request.getParameter("search");
                int searchSin = Integer.getInteger(request.getParameter("search"));
                //If it is a string
                request.setAttribute("employees", employeeService.getEmployeesLastName(search));
                //else if it is an integer
                  request.setAttribute("employees", employeeService.getEmployeesSIN(search));

            }

您可以使用intanceof了解这一点

例如:

if(字符串的myObject实例){
//你的代码在这里
}

尝试以下代码

if (request.getParameter("search") != null) {
    String search = request.getParameter("search");
    //it is an integer
    if(isInteger(search)){
     int searchSin = Integer.getInteger(search);
     request.setAttribute("employees", employeeService.getEmployeesSIN(searchSin));
    }
    //else if it is a string
    else{
        request.setAttribute("employees", employeeService.getEmployeesLastName(search));
    }
}

// check if one string is a integer
private boolean isInteger(String s) {
    try { 
        Integer.parseInt(s); 
    } catch(NumberFormatException e) { 
        return false; 
    } catch(NullPointerException e) {
        return false;
    }
    // only got here if we didn't return false
    return true;
}

您尝试将
search
解析为整数值,如果它抛出
NumberFormatException
,则它不是整数:)这里使用不同的方法检查输入字符串是否为数字,这里的问题是检查输入字符串是否为数字:)