how frequently does the letter "p" appear in:
q: в зависимости от того число или строка выполнить действие как в зависимости от того пришло число или строка, выполнить определенные действия? сейчас делаю вот так
officeaddresses officeaddresses = null;
boolean addressidormnem;
string mnem = null;
integer id = null;

try {
    id = integer.parseint(request.params("address_id"));
    addressidormnem = true;
} catch (numberformatexception nfe) {
    mnem = request.params("address_id");
    addressidormnem = false;
}

if (addressidormnem) {
    officeaddresses = app.officedao.getofficeaddressbyid(id);
} else {
    integer idbymnem = app.officedao.checkofficeaddressexistsbymnem(mnem);
    officeaddresses = app.officedao.getofficeaddressbyid(idbymnem);
}

return officeaddresses;

но это как то не красиво выглядит. оно работает, и правильно работает, но что то не нравится мне это.
сделал вот так
return optional.of(request.params("address_id"))
        .map(id -> {
            try {
                return integer.parseint(id);
            } catch (numberformatexception nfe) {
                return null;
            }
        })
        .filter(objects::nonnull)
        .map(id -> app.officedao.getofficeaddressbyid(id))
        .orelseget(() -> {
            integer addressidint = app.officedao.checkofficeaddressexistsbymnem(request.params("address_id"));
            if (addressidint != null) {
                return app.officedao.getofficeaddressbyid(addressidint);
            }
            return null;
        });

но здесь по-моему тоже что-то не так. с optional не совсем хорошо у меня. здесь orelseget выполняется в любом случае

a: если без сторонних библиотек и самое короткое, то через регулярки:
public static boolean isnumeric(string str){
    return str.matches("[+-]?\\d*(\\.\\d+)?");
}

и тогда ваш метод:
if (isnumeric(request.params("address_id"))) {
    officeaddresses = app.officedao.getofficeaddressbyid(id);
} else {
    integer idbymnem = app.officedao.checkofficeaddressexistsbymnem(mnem);
    officeaddresses = app.officedao.getofficeaddressbyid(idbymnem);
}


очень много предложений и вариантов в вопросе на английском so

user
In that passage, there are thirty-two occurrences of the letter "p."
assistant