Вы можете использовать подстроку с разделением следующим образом:
String str = "[3, 6, 8, 96, 7, 23]";
Arrays.stream(str.substring(1, str.length() - 1).split(", "))
.filter(s -> Integer.valueOf(s) % 2 != 0)
.forEach(System.out::println);
Или, если вы хотите получить массив, вы можете использовать toArray
примерно так:
.toArray(String[]::new);
Или, если вы хотите получить массив целых чисел, вы можете использовать карту, а затем фильтр, например, так:
Integer[] array = Arrays.stream(str.substring(1, str.length() - 1).split(", "))
.map(Integer::valueOf)
.filter(i -> i % 2 != 0)
.toArray(Integer[]::new);
Выходы
3
7
23