Java 8/9: Um caractere em uma String pode ser mapeado para seus índices (usando fluxos)?
Dado umString s
e umchar c
, Estou curioso para saber se existe algum método para produzir umList<Integer> list
des
(onde os elementos dentrolist
representam os índices dec
dentros
)
Um fim, masincorreta abordagem seria:
public static List<Integer> getIndexList(String s, char c) {
return s.chars()
.mapToObj(i -> (char) i)
.filter(ch -> ch == c)
.map(s::indexOf) // Will obviously return the first index every time.
.collect(Collectors.toList());
}
As seguintes entradas devem produzir a seguinte saída:
getIndexList("Hello world!", 'l') -> [2, 3, 9]