На вход в метод будет приходить строка, эквивалентная по формату значению переменной 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()));
Эквивалент вашего кода.
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();
Продвижение своими сайтами как стратегия роста и независимости