Проверьте, содержит ли request.getParameter строковое значение или целое число - PullRequest
0 голосов
/ 24 марта 2020

Я пытаюсь выполнить поиск с двумя разными значениями: целым числом (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));

            }

Ответы [ 2 ]

1 голос
/ 24 марта 2020

Попробуйте следующий код

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;
}
0 голосов
/ 24 марта 2020

Вы можете использовать intanceof, чтобы узнать это

Например:

if (myObject instanceof String) { // Your code here }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...