Перевод строки в массив цифр с помощью Stream API

285
12 февраля 2020, 06:00

На вход в метод будет приходить строка, эквивалентная по формату значению переменной string.
Как сделать Stream над переменной string, который сможет определять, является ли символ этой строки цифрой, и если да, то создавать массив int[] из этих цифр (каждая цифра - новый элемент int[] массива)? Чтобы в итоге можно было сделать return этого массива цифр.

Я написал код, который переводит строку в массив int[], но мне нужно это сделать через Stream:

String string = "[1, 6, 7, 2, 1, 9, 2, 49, 54, 47]";
List<Integer> integers = new ArrayList<>();
char[] chars = string.toCharArray();
for (int i = 0; i < string.length(); i++) {
    if (Character.isDigit(chars[i])) {
        integers.add(Character.getNumericValue(chars[i]));
    }
}
System.out.println(Arrays.toString(integers.stream().mapToInt(i -> i).toArray()));
Answer 1

Эквивалент вашего кода.

    String string = "[1, 6, 7, 2, 1, 9, 2, 49, 54, 47]";
    int[] ints = string.chars()
            .filter(Character::isDigit)
            .map(Character::getNumericValue)
            .toArray();

Но это скорее всего не то что вы хотите, 49 превратится в 4 и 9.

Если хочется числа из строки то ответ:

    int[] ints = Stream.of(string.substring(1, string.length() - 1)
            .split(","))
            .map(String::trim)
            .mapToInt(Integer::parseInt)
            .toArray();
READ ALSO
Дженерик и интерфейсы

Дженерик и интерфейсы

Как указать, что тип аргумента класса-дженерика должен имплементировать какой-то интерфейс? Если можно, примерВопрос и для C#, и для Java

285
Android Отправка запросов в фоне

Android Отправка запросов в фоне

Нужно отправлять post запрос на сервер, дабы проверить, есть ли уведомления для этого приложенияКак это реализовать, понятия не имею

271
Абстракция и её понятие

Абстракция и её понятие

Ты наверняка помнишь, что такое «абстракция» — мы это уже проходилиЕсли вдруг подзабыл — не страшно, вспомним: это принцип ООП, согласно...

239
Нужно пару подсказок по Java

Нужно пару подсказок по Java

В main реализовано бой двух персонажев и у меня почему то время от времени умирают они оба, как можно это исправить и еще одно как создать метод...

281