#java
На вход в метод будет приходить строка, эквивалентная по формату значению переменной string. Как сделать Stream над переменной string, который сможет определять, является ли символ этой строки цифрой, и если да, то создавать массив int[] из этих цифр (каждая цифра - новый элемент int[] массива)? Чтобы в итоге можно было сделать return этого массива цифр. Я написал код, который переводит строку в массив int[], но мне нужно это сделать через Stream: String string = "[1, 6, 7, 2, 1, 9, 2, 49, 54, 47]"; Listintegers = 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()));
Ответы
Ответ 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();
Комментариев нет:
Отправить комментарий