Integer parseint в optional

272
10 мая 2018, 08:46

Есть вот такой код

Integer page = Optional.ofNullable(request.queryParams("page")).map(p -> {
            try {
                return Integer.parseInt(p);
            } catch (NumberFormatException e) {
                return null;
            }
        }).orElse(null);

как избавиться от try catch внутри него, но при этом, что бы когда параметр page будет строкой, не вылилась ошибка?

Answer 1

Попробуйте так:

Integer page = Optional.of("abc").filter(e -> e.chars().allMatch(Character::isDigit)).map(Integer::parseInt).orElse(null);
Answer 2

Вы можете удалить все символы кроме цифр в строке и если результат не пустой, то можете передать его функции parseInt, но лучше valueOf, так как он работает с пулом интов

READ ALSO
Одинаковые символы regex

Одинаковые символы regex

Возможно ли с помощью regex найти одинаковые буквы в строке (встречаются несколько раз)? Пример: "Привет, как дела?" Совпадения: е, к, а

289
Как изменить параметры IntentFilter( "android.intent.action.TIME_TICK)

Как изменить параметры IntentFilter( "android.intent.action.TIME_TICK)

У меня возникла необходимость использовать для вызова уведомлений broadcast, и у меня возникла проблема: я хочу, чтобы уведомления приходили...

203
SQLException: Public Key Retrieval is not allowed

SQLException: Public Key Retrieval is not allowed

Всем привет! Я новичок в Java, и не могу понять суть происходящегоЕсть mysql server v8 и connector v8, всё с официального сайта mysql

361
Сервер дублирует сообщения

Сервер дублирует сообщения

Приложение-чатик клиент/сервер

238